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
计算机不可能提供无限的空间让程序去存储这些二进制小数,就会根据设置进行截断。
由于浮点数表示的这种“不精确性”或者说是“近似性”, 对于精确度要求不高的运算还行,对于要求精确的运算(例如银行)时就要小心了, 很可能得不到你想要的结果。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
3条评论