1.31. Java 中应该使用什么数据类型来储存价格
如果不是特别关心内存和性能的话,使用 BigDecimal,否则使用预定义精度的 double 类型。
请看下面的示例:
public class Test { public static void main(String[] args) { double a=0.03; double b=0.02; double c=a-b; System.out.println(c); } }
结果会打印多少,大部分人肯定都在想结果肯定是 0.01,如果觉得结果是 0.01 的同学可以动手在编辑器上实现并运行一下你会惊奇的发现结果居然是0.009999999999999998,因为 float 与 double 都是浮点数,浮点数参与的运算通常伴随着因为无法精确表示而进行的近似或舍入,所以导致结果会有丝毫的偏差,而涉及金额的计算是绝对不予许存在偏差的。
我们可以使用 BigDecimal 来表示金额,或者是通过将金额的单位变小用整数来表示金额。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论