java – 当我使用BigDecimal时为什么我的操作不起作用?
发布时间:2020-12-14 23:36:00 所属栏目:Java 来源:网络整理
导读:我正在尝试使用BigDecimal进行操作,但它总是返回0.当我使用double时,为什么它可以工作? public static void main(String[] args) { double a = 3376.88; BigDecimal b = new BigDecimal(a); System.out.println(a-a/1.05); System.out.println(b.subtract(b
我正在尝试使用BigDecimal进行操作,但它总是返回0.当我使用double时,为什么它可以工作?
public static void main(String[] args) { double a = 3376.88; BigDecimal b = new BigDecimal(a); System.out.println(a-a/1.05); System.out.println(b.subtract(b).divide(new BigDecimal(1.05)).doubleValue()); } 谢谢. 解决方法
您没有执行相同的操作.
当您执行双操作时,正常的Java操作顺序正在应用: a-a/1.05 = a - (a/1.05) 但是当您在BigDecimal上运行方法时,操作将按您调用它们的顺序进行评估,因此 b.subtract(b).divide(new BigDecimal(1.05)) 相当于 (b - b) / 1.05 = 0 / 1.05 = 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |