我刚刚学习浮点数并且很难理解我应该如何找到3个双值(让我们说a,b和c)以便:
(a + b)+ c == 1.0和a +(b + c)== 0.0
我已经阅读了几个网页,并观看了有关浮点数的视频,但我不知道应该如何找到这样的内容。我尝试了不同的数字,但结果只有很小的差异。 e.g。
(1.1 - 0.2)+ 0.1 = 1.0000000000000002
1.1 +( - 0.2 + 0.1)= 1.0
答案 0 :(得分:-1)
在一般情况下,您只能将浮动操作的结果与您信任的误差范围进行比较。
例如,使用Scalactic库:
import orc.scalactic.TripleEquals._
import orc.scalactic.Tolerance._
(1.1 - 0.2) + 0.1 === 1.0 +- 1.0e-6 // true
1.1 + (-0.2 + 0.1) === 1.0 +- 1.0e-6 // true
如果您不想这样,则需要使用BigDecimal
精确数学。