有人可以解释舍入误差是什么意思吗?

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


小怪兽爱吃肉
浏览 173回答 1
1回答

红糖糍粑

问题是浮点数学是违反直觉的。一方面是例如特定数字不能正确表示为浮点数。你写了 0.2,但在运行时,结果显示为 0.1999999....因此,处理浮点数时的基本规则是永远不要执行 x==y,而是使用epsilon&nbsp;delta,以便 (xy) < epsilon。换句话说:许多浮点数运算会产生“意外”结果。因此,简单的 == 是不够的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java