gpt4 book ai didi

java - float 和 double 的不同值

转载 作者:太空狗 更新时间:2023-10-29 22:59:08 26 4
gpt4 key购买 nike

我不明白为什么 float 值与 double 值不同。从下面的示例中可以看出,对于相同的操作,float 提供的结果与 double 提供的结果不同:

public class Test {

public static void main(String[] args) {
double a = 99999.8d;
double b = 99999.65d;
System.out.println(a + b);

float a2 = 99999.8f;
float b2 = 99999.65f;
System.out.println(a2 + b2);
}
}

输出:

199999.45
199999.44

您能解释一下 float 和 double 之间的区别吗?

最佳答案

float 是 32 位 IEEE 754 float 。

double 是 64 位 IEEE 754 float 。

所以这只是一个精度问题,因为小数部分 .8 和 .65 都没有终止二进制表示,因此存在一些舍入误差。 double 具有更高的精度,因此舍入误差略小。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

关于java - float 和 double 的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581337/

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