java中浮点数的精度

绝不要用浮点类型来保存money数据. 采用浮点数得到的计算结果是不精确的
double a = 1.14 * 75; // 85.5 将表示为 85.4999...   
System.out.println(a);
System.out.println(Math.round(a)); // 输出值为85
BigDecimal b = (new BigDecimal("1.14")).multiply(new BigDecimal(75)); // 85.5
System.out.println(b); //85.50


http://macrochen.iteye.com/blog/1393502 java编程易出错的问题

你可能感兴趣的:(java)