0.1 + 0.2 为什么得出来的是 一个大于 0.3 的数,而不是 一个小于 0.3 的数?
( 0.1 + 0.2 = 0.30000000000000004 )
0.1 + 0.2 为什么得出来的是 一个大于 0.3 的数,而不是 一个小于 0.3 的数?
( 0.1 + 0.2 = 0.30000000000000004 )
|
AngelCrissApr 21, 2018 via Android
1
0.1 + 0.2 不等于 0.3 ?难道我小学数学老师原本是教体育的?
|
|
KenroHoroApr 21, 2018
2
IEEE754
|
|
wdd2007Apr 21, 2018
3
浮点数比较无意义
|
|
jingousApr 21, 2018
4
把两个小数转化为二进制加一下看看
|
|
flowfireApr 21, 2018 via iPhone
6
。。。。四舍和五入都属于精度丢失
|
|
lance6716Apr 21, 2018 via Android
7
IEEE754
|
|
bkmiApr 21, 2018 via Android
9
去搜搜计算机中浮点数的表示方法…
|
|
q8515620Apr 21, 2018 via Android
10
我是认为,精度丢失不是数值上的丢失。
精度指的是精确度(或者说是误差?) |
|
11
所谓的精度损失并不是每次都变小。
精度损失体现在两个方面:一是原始的表示不精确,二是就算过程阶码较小的元素为丢位 然后,花费半个多小时推导了过程,仅供参考: https://pan.baidu.com/s/1XA145TEiMo2b3GgL7HkOiQ |
|
13
|
|
14
至于为啥多出来个.000004
因为超过 52 为会自动进一舍零 0.0001100110011001100110011001100110011001100110011001100 变成了 0.0001100110011001100110011001100110011001100110011001101 要是算 |
|
15
convert('0.0100110011001100110011001100110011001100110011001100110', 2)
结果是 0.3 |