JAVA 的BigDecimal 与Double的区别

王铎开 王铎开 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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会丢失精度呢?求解。。。


...全文

相关推荐

Java Bigdecimal使用原理详解

主要介绍了Java Bigdecimal使用原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38711643

浅谈java中BigDecimal的equals与compareTo的区别

下面小编就为大家带来一篇浅谈java中BigDecimal的equals与compareTo的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38560107

Java程序员面试题集锦-java程序员面试试题与解析doc精品模板.docx

Java程序员面试题集锦-java程序员面试试题与解析doc精品模板.docx

淘小白_TXB2196

JAVA API 总结

关于API的个人总结,里面有JAVA主要使用的API程序代码,欢迎大家下载预览!

量子,相反皆相成

Java基础面试题[源码]

本文详细介绍了Java的基础面试题,涵盖了多态特性、参数传递、接口与抽象类的区别、序列化与反序列化、不可变类、异常处理、面向对象编程、泛型、动态代理、注解、反射机制、SPI机制、深拷贝与浅拷贝、Integer缓存池、类加载过程、BigDecimal、网络编程、基本数据类型、自动装箱与拆箱、迭代器、运行时异常与编译时异常、继承机制、封装特性、访问修饰符、静态方法与实例方法、for循环与foreach循环、双亲委派模型、wait()与sleep()的区别、Java与Go的区别、Object类的方法、Java字节码等多个方面。这些内容对于准备Java面试的开发者来说非常有帮助,能够全面了解Java的基础知识和核心概念。

resnet7explorer
评论 1
收藏 已收藏
分享
返回顶部
王铎开
Java SE 62,621 成员 307,251 内容