有人可以解释舍入误差的含义吗?

时间:2018-09-26 17:30:06

标签: java double rounding pow sqrt

在我的考试表中它指出:x是类型为double的正数变量,并且由于四舍五入关系,(Math.pow(x,0.5)== Math.sqrt(x))应该为false错误。但是,我尝试了一些值,但事实证明它们都是正确的。对此有解释吗?

1 个答案:

答案 0 :(得分:1)

问题在于浮点数学是违反直觉的。

例如,一方面是特定数字不能正确表示为浮点数。

您编写了0.2,但是在运行时,结果显示为0.1999999 ....

因此,处理浮点数的基本规则是永远不要执行x == y,而要使用 epsilon delta,从而使(x-y)

换句话说:许多带有浮点数的操作会给出“意外的”结果。因此,简单的==是不够的。