Java 意外的十进制结果
我运行了以下代码,但没有预料到结果Java 意外的十进制结果,java,floating-point,decimal,Java,Floating Point,Decimal,我运行了以下代码,但没有预料到结果 public class SampleDemo { public static void main(String args[]) { System.out.println(10.00 - 9.10); } } 我得到的o/p为0.900000000000004 为什么会这样?这是因为十进制值不能用float或double精确表示 一个建议:在需要准确答案的地方避免浮动和双精度。改用BigDecimal、int或long
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10.00 - 9.10);
}
}
我得到的o/p为0.900000000000004
为什么会这样?这是因为十进制值不能用float或double精确表示 一个建议:在需要准确答案的地方避免浮动和双精度。改用BigDecimal、int或long
使用int:
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10 - 9);
}
}
// Output : 1
import java.math.BigDecimal;
public class SampleDemo {
public static void main(String args[]) {
System.out.println(new BigDecimal("10.00").subtract(new BigDecimal("9.10")));
}
}
// Output : 0.90
使用BigDecimal:
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10 - 9);
}
}
// Output : 1
import java.math.BigDecimal;
public class SampleDemo {
public static void main(String args[]) {
System.out.println(new BigDecimal("10.00").subtract(new BigDecimal("9.10")));
}
}
// Output : 0.90
阅读侧边的所有相关问题--->:)只是想指出,如果你需要这种精确性,那就去吧,它可以让你更好地控制精确性、规模、取整政治等等。是的,@Anthony+1我在我的答案中添加了它。:)