Bri*_*Pan 7 java math floating-point coldfusion
我在ColdFusion代码中发现了这些值,但Google计算器似乎有相同的"错误",其中差异不为零.
416582.2850 - 411476.8100 - 5105.475 = -2.36468622461E-011
JavaCast将这些设置为long/float/double没有帮助 - 它会导致其他非零差异.
Gre*_*ill 17
这是因为在基数10中"看起来"的十进制数字在基数2中不能完全表示(这是计算机用来表示浮点数的数字).有关此问题和解决方法的详细说明,请参阅文章科学家应该知道的关于浮点运算的文章.
浮点不准确(有无数个实数,只有有限数量的32位或64位数字来表示它们).
如果你无法处理微小的错误,你应该使用BigDecimal.
PrecisionEvaluate()在ColdFusion中使用(它将BigDecimal在Java中使用)
zero = PrecisionEvaluate(416582.2850 - 411476.8100 - 5105.475);
Run Code Online (Sandbox Code Playgroud)
不像Evaulate(),不需要"".
| 归档时间: |
|
| 查看次数: |
3413 次 |
| 最近记录: |