热线电话:13121318867

登录
2020-03-11 阅读量: 771
为什么浮点数无法精确表示?

程序里写的10进制小数,计算机内部无法用二进制的小数来精确的表达。

什么是二进制的小数? 就是形如 101.11 数字,注意,这是二进制的,数字只能是0和1。

101.11 就等于 1 * 2^2 +0 *2^1 + 1*2^0 + 1*2^-1 + 1*2^-2 = 4+0+1+1/2+1/4 = 5.75

计算机不可能提供无限的空间让程序去存储这些二进制小数,就会根据设置进行截断。

由于浮点数表示的这种“不精确性”或者说是“近似性”, 对于精确度要求不高的运算还行,对于要求精确的运算(例如银行)时就要小心了, 很可能得不到你想要的结果。

19.0452
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子