gpt4 book ai didi

java - 浮点 setter 设置任意分数

转载 作者:行者123 更新时间:2023-12-02 06:21:38 27 4
gpt4 key购买 nike

这是我的“ProjectEntity”类中的代码部分(我在其中使用 hibernate 进行 SQL 调用)

@Column(name = "BUDGET")
private float budget;

public float getBudget() {
return budget;
}

public float setBudget(float budget) {
this.budget = budget;
}

在另一个类中,我这样称呼我的 setter:

newProject.setBudget(Float.parseFloat(strTotalAmount.substring(0, strTotalAmount.indexOf(" (hrs)"))) * m);

这里有一个名为 strTotalAmount 的字符串,它看起来像这样:“51.0 (hrs)”。所以它基本上从字符串中获取值 51.0 并乘以等于 47.6 的浮点“m”,到这里一切都很好。它应该将该值设置为 2427.6,但它设置为 2427.5999。可能是什么问题?

注意:最初在 ProjectEntity 中“预算”值是双倍而不是 float 。我已经把它改成 float 了。但一切都没有改变。

最佳答案

如果您需要精确的数字, float 是 Java 中的近似值,尤其是在使用 BigDecimal 处理金钱时。

public class FloatTest {
public static void main(String[] args) {
BigDecimal f1 = new BigDecimal("51.0");
BigDecimal f2 = new BigDecimal("47.6");

System.out.println(f1.multiply(f2));
}
}

关于java - 浮点 setter 设置任意分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20968711/

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