lz的博客
2015-04-15 10:00
采纳率: 100%
浏览 2.9k
已采纳

BigDecimal为什么可以保证小数精度

如题,,BigDecimal用到BigInteger,BigInteger不是一样要转二进制吗? 求大神

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2015-04-15 18:03
    已采纳

    Decimal的原理就是把小数放大10的N次方倍,将小数点移动到后面,这样利用都是整数,就保证了精度。

    已采纳该答案
    评论
    解决 5 无用
    打赏 举报
  • threenewbee 2015-04-15 18:02

    整数转换成二进制不会丢失精度。只有小数才可能会。因为不是所有的十进制小数都能表示成有限二进制小数。
    如果你不能理解,想象下三进制和十进制的关系。
    如果我们把一个三进制的数用十进制表示,是不是如果这个三进制的数没有小数部分,肯定可以用十进制精确表示?
    比如
    0 - 0
    1 - 1
    2 - 2
    10 - 3
    11 - 4
    12 - 5
    20 - 6
    21 - 7
    22 - 8
    100 - 9
    ...
    是不是都能表示?
    但是小数就不行了,比如三进制的0.1,就是十进制的0.33333.....
    如果想明白了,那么你的问题也不难理解了。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题