【发布时间】:2014-04-06 12:45:29
【问题描述】:
表达式的结果:2.227E-19-1.0+1.0 将是 0.0
我怎样才能得到 2.227E-19 的结果?
我有一个表情
a-b+1
和
- a 始终是一个非常小的数字。
- b 可能接近 1.0
当一个非常小的数字与一个大数字运算时如何保持准确性?
【问题讨论】:
-
有什么问题?你得到什么?
a和b的值是多少? -
+ (1.0 - b)。但这是人为的:IEEE double 有 16 位精度,所以b和 1 之间的最小变化大于a的大小——你基本上已经失去了所有的精度。
标签: java numbers arithmetic-expressions