gpt4 book ai didi

java - 具有两个不同值的浮点对象

转载 作者:行者123 更新时间:2023-11-30 02:13:47 25 4
gpt4 key购买 nike

我在将浮点值打印到报告中时遇到问题。当我检查对象时,它显示两个值。我希望当我将此值打印到报告中时,该值将为 80.914055。但它打印出 80.789055。

Float showing two values

该值来自用 Fortran 编写的 dll。有一种方法可以从 dll 中检索值并以 Java float (80.914055) 的形式返回。

public float getN1(){
return ttoutn.getCRUICM(0);
};

还有另一个类调用上面的方法。但使用 method.invoke() 代替。

Object returnedObject = method.invoke(calculationModule);

使用 method.invoke(),原始 float 被包装在对象 Float 中。看来Float里面的值是正确的(80.914055),如上所示。但是一旦您使用 System.out.println(),它就会打印为另一个值 (80.789055)。

我对可能发生的事情一无所知。

最佳答案

因为java使用IEE754用于 float 学。这意味着有时你会得到奇怪的东西。

如果精度确实很重要,请使用 BigDecimalthis stuff here 有很棒的指南.

关于java - 具有两个不同值的浮点对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264269/

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