使用main方法测试BigDecimal时:
public class Number {
public static void main(String[] args) {
BigDecimal x = new BigDecimal(2.0);
BigDecimal y = new BigDecimal(1.2);
BigDecimal z = x.subtract(y);
System.out.println(z);
}
}
得出的结果是:

输出的结果却不是0.8
但是若将数值改变成2.0-1.5
public class Number {
public static void main(String[] args) {
BigDecimal x = new BigDecimal(2.0);
BigDecimal y = new BigDecimal(1.5);
BigDecimal z = x.subtract(y);
System.out.println(z);
}
}
控制台结果

虽说二进制系统中无法精确地表示分数1/10,但是java基础中提到的DiaDeciaml不就是为了保证小数精确地吗?
有点不理解,求大神解答
本文通过对比不同数值在Java BigDecimal类subtract方法下的运算结果,探讨了二进制系统中分数表示的精度问题。虽然BigDecimal旨在提供高精度的小数运算,但在某些情况下,其表现可能并不如预期。
1663

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



