![]() |
1
3
1) 浮点并没有无限的精度——它们在内存中占据一定数量的位(通常是64或32)。 2) 它们使用二进制内部表示法来表示尾数(基本上除了第一位之外的所有有效数字)。 3) .1不能精确地存储为二进制表示,只能存储为二进制位的无限重复模式,而且由于尾数只有这么大,浮点数实际上是.1的近似值,而不是实际的.1。(不过,0.5和0.25之类的数值也可以) 4) 因此,将.1s相加并不能保证得到完美的结果——四舍五入的方式会出错。例如,.1本身加十次可能会得到1.0000…1或0.99999…9。 看见 http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html 每一位计算机科学家都应该知道浮点运算 |
![]() |
2
2
关于浮点算法不准确的原因,有很多评论,但没有回答如何修复代码。
长话短说,
|
|
3
1
基于您编写的代码编写的一个非常糟糕的示例对我来说已经足够好了。
|
![]() |
4
0
这是因为你
|
![]() |
5
0
尝试将t(浮点)转换为整数,然后进行比较。。
或
|
![]() |
June-Solstice · 元组到numpy,数据准确性 2 年前 |
![]() |
Sorawee Porncharoenwase · 浮点溢出为负 7 年前 |
![]() |
v78 · 不损失精度的第n项的有效逼近 9 年前 |
![]() |
FranXh · JavaScript:toFixed(…)方法的缺点 10 年前 |
|
nickg · If语句不起作用(Python) 11 年前 |
![]() |
Metrics · Stata中的数据精度 11 年前 |