【发布时间】:2012-02-17 14:09:42
【问题描述】:
我正在使用浮点常量并将对象私有浮点变量设置为下面的浮点常量,但是当对象输出它设置的值时,它会将浮点中的最后一位四舍五入。
private final float RF_FREQUENCY = 956.35625f;
Object o = new Object();
o.setRFFrequency(RF_FREQUENCY);
System.out.println(o.getRFFrequency);
输出:956.35626
对象中的变量声明为protected float rfFrequency;,下面是getter和setter。
public float getRFFrequency() {
return rfFrequency;
}
public void setRFFrequency(float value) {
this.rfFrequency = value;
}
知道为什么会这样吗?
【问题讨论】:
-
至少是第二次问这个问题就在今天
-
最好将
float更改为BigDecimal,基于@JBNizet 的帖子 -
使用this online calculator为自己寻找答案。
-
@JBNizet 抱歉,我进行了搜索,但没有看到与我提出的问题完全一样的内容。不过感谢您的链接。
标签: java floating-point floating-accuracy