关于Bigdecimal的相关疑问

fengjixuchui886 2016-10-31 05:16:24
项目中涉及到财务的地方,计算都是用Bigdecimal操作,这是计算机二进制无法准确表达一些小数导致的,但是为什么电脑系统自带的计算器,可以很精确的计算这些数字呢,我发现有时候项目中的Bigdecimal也不能非常精确的计算啊,只能是相对精确吧?对Bigdecimal了解得不足,希望能解释一下原理,与计算机自带计算器的原理区别,谢谢
...全文
120 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
HinanaiTenshi 2016-10-31
  • 打赏
  • 举报
回复
可以确定问题不出在这个大数类上,而是出在你对double的处理上。 具体可以参考浮点数标准IEEE 754和浮点数 凡是遵循这个标准的语言都使用相同的原理来处理浮点数,在有些情况下会导致暴力输出结果带上了奇妙的小数。 如果要完美避免这个精度问题: 1. BigDecimal类的初始化采用字符串参数的构造方法。 2. 全程使用BigDecimal的API做计算、进位和精度截取。 3. 完成所有处理后通过API输出double结果。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧