use*_*567 0 c# precision floating-accuracy
quotient = 43156414f / 3;
Run Code Online (Sandbox Code Playgroud)
我在这里得到quotient== 1438547 2(完全不是真正的价值应该是: 1438547 1,333...)。它完全失去了所有小数部分!
我知道浮点计算不准确(似乎不是全部,我应该知道),但是,正如我所告知的,错误可能出现在更远的有效数字上。但这里的红利只是 8 位数字。为什么会发生如此戏剧性的错误?
可选的子问题:我应该记住哪些规则来预见未来的此类错误?
请注意:将分红类型从 float 更改为 double 可以解决此问题。
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |