gpt4 book ai didi

java - 舍入误差近似值

转载 作者:行者123 更新时间:2023-12-01 05:45:22 24 4
gpt4 key购买 nike

Possible Duplicate:
Java floating point arithmetic

大家好,我刚刚读一本书,遇到了这个例子,它给出了不同的输出。有人可以向我解释一下原因吗?

 public class Test {

public static void main(String[] args) {
double x = 0.3 - 0.2;
double y = 0.2 - 0.1;
System.out.println(x);
System.out.println(y);

System.out.println(y == x);
}
}

输出是:0.09999999999999998

0.1

最佳答案

计算机将 float 表示为整数乘以 2 的幂。 0.1 不能完全表示为 float (就像您不能以十进制书写 1/3 一样),因此会出现舍入错误。避免这种情况的最佳方法是在可以的情况下使用整数类型,在不能的情况下使用宽容的比较函数。 不要比较 float 是否完全相等,除非您知道自己在做什么。

关于java - 舍入误差近似值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com