0
我正在执行浮点值比较..以及在下面的程序中。这是一个非常基本的..在比较过程中有小数点的一些技巧。 请帮我理解这一点。比较在java中给出意外结果的浮点值
class C
{
public static void main(String args[])
{
Float pi = new Float(3.13999999f);
if (pi > 3.13999999) {
System.out.print("pi is bigger than 3. ");
}
else if (pi < 3.13999999){
System.out.print("pi is less than 3. ");
}
}
}
结果:pi是大于3
然后,我已经从所有三个值
class C
{
public static void main(String args[])
{
Float pi = new Float(3.1399999f);
if (pi > 3.1399999) {
System.out.print("pi is bigger than 3. ");
}
else if (pi < 3.1399999){
System.out.print("pi is less than 3. ");
}
}
}
现在的结果是最后一个数字(9)中除去:圆周率小于3
值得注意的原因。在java中,float是一个单精度64位IEEE 754浮点。这并不意味着要保留精确的小数值,所以总会有误差。 如果您需要确切的数字或托管的精度,您应该使用BigDecimal。 – lscoughlin