gpt4 book ai didi

java - 整数类型的 double /浮点比较(关系运算符)的精度是多少?

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

整数类型的 double /浮点比较(关系运算符)的精度是多少?

据我所知,不建议在任何比较中使用浮点。但到目前为止,这个操作是允许的,问题是:

    int x = 90;
float y = 90.00_001f;

if (x < y) {
System.out.println("it works!"); // gets printed
}

// now just add one zero to lessen the precision a bit...

int x = 90;
float y = 90.000_001f;

if (x < y) {
System.out.println("it works!"); // not printed
}

最佳答案

这里的问题不在于与整数的比较,而在于 float 本身的精度。

当您指定浮点(或 double )文字时,您可以指定任意数量的小数位;但这并不意味着编译代码时会保留精度。

例如,以下所有项都具有相同的值:

90.f
90.000_001f
90.000000000000000000000000000000000000000000000000000000000‌​00000001f

Ideone demo

所以第二次比较失败的原因是90.000_001f等于90.f;这等于将 90 扩大为 float 的值。

关于java - 整数类型的 double /浮点比较(关系运算符)的精度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497386/

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