JAVA 的BigDecimal 与Double的区别
1) 8.459669791666667.multiply(4800).doubleValue()
b1.multiply(b2)
(java.math.BigDecimal) 40606.4149999999968000
b1.multiply(b2).doubleValue()
(double) 40606.41499999999
2) 8.459669791666667*4800=40606.415
用BigDecimal的multiply(第一种方法)算出的结果40606.4149999999968000 。保留两位是40606.41
用普通的(*)乘法(第二种方法)来计算就是40606.415。保留两位是40606.42,这样结果就相差0.01。
但我觉得跟这个没关系,默认会四舍五入的。
应该是doubleValue的问题。
怎么BigDecimal会丢失精度呢?求解。。。
b1.multiply(b2)
(java.math.BigDecimal) 40606.4149999999968000
b1.multiply(b2).doubleValue()
(double) 40606.41499999999
2) 8.459669791666667*4800=40606.415
用BigDecimal的multiply(第一种方法)算出的结果40606.4149999999968000 。保留两位是40606.41
用普通的(*)乘法(第二种方法)来计算就是40606.415。保留两位是40606.42,这样结果就相差0.01。
但我觉得跟这个没关系,默认会四舍五入的。
应该是doubleValue的问题。
怎么BigDecimal会丢失精度呢?求解。。。
...全文
相关推荐
Java Bigdecimal使用原理详解
主要介绍了Java Bigdecimal使用原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
浅谈java中BigDecimal的equals与compareTo的区别
下面小编就为大家带来一篇浅谈java中BigDecimal的equals与compareTo的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java程序员面试题集锦-java程序员面试试题与解析doc精品模板.docx
Java程序员面试题集锦-java程序员面试试题与解析doc精品模板.docx
JAVA API 总结
关于API的个人总结,里面有JAVA主要使用的API程序代码,欢迎大家下载预览!
Java基础面试题[源码]
本文详细介绍了Java的基础面试题,涵盖了多态特性、参数传递、接口与抽象类的区别、序列化与反序列化、不可变类、异常处理、面向对象编程、泛型、动态代理、注解、反射机制、SPI机制、深拷贝与浅拷贝、Integer缓存池、类加载过程、BigDecimal、网络编程、基本数据类型、自动装箱与拆箱、迭代器、运行时异常与编译时异常、继承机制、封装特性、访问修饰符、静态方法与实例方法、for循环与foreach循环、双亲委派模型、wait()与sleep()的区别、Java与Go的区别、Object类的方法、Java字节码等多个方面。这些内容对于准备Java面试的开发者来说非常有帮助,能够全面了解Java的基础知识和核心概念。


Java SE
