gpt4 book ai didi

java - Float 和 BigDecimal 精度差异

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:28 25 4
gpt4 key购买 nike

public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal foo,foo1;
foo=BigDecimal.valueOf(3.1);
foo1=BigDecimal.valueOf(3.1f);

System.out.println(foo);
System.out.println(foo1);

}

结果:
3.1
3.0999999046325684

为什么他们有不同的结果?我正在使用 JDK1.7.0_03

最佳答案

3.1 定义了一个 double3.1f 定义了一个 float。您看到的是 float 表示该值的问题(float 使用“仅”32 位和双 64 位)。

如果您想使用 BigDecimal 定义 3.1,请使用 String 构造函数:

BigDecimal foo = new BigDecimal("3.1");
System.out.println(foo);

输出:

3.1

关于java - Float 和 BigDecimal 精度差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557839/

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