import java.math.BigDecimal;
public class Change {
public static void main(String args[]) {
System.out.println(2.00 - 1.10);
//System.out.printf("%.2f%n"2.00-1.00);
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
}
public class Change {
public static void main(String args[]) {
System.out.println(2.00 - 1.10);
//System.out.printf("%.2f%n"2.00-1.00);
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
}
}
输出:

1,并不是所有的小数都可以用二进制浮点数精确表示
2,二进制浮点数对于货币计算式非常不合适的
3,要用BigDecimal的(String)构造器,不要用BigDecimal的(double)
总之,在需要精确的地方,要避免使用float和double;对于货币计算,要使用int,long或BigDecimal
本文通过一个简单的Java示例,展示了在进行货币计算时使用BigDecimal的重要性。对比了直接使用浮点数进行运算产生的误差,强调了在需要高精度计算的情况下,如货币计算,应避免使用float和double类型,而选择使用BigDecimal。
249

被折叠的 条评论
为什么被折叠?



