eva*_*van 3 java floating-point decimal
我运行以下代码,但没想到结果..
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10.00 - 9.10);
}
}
Run Code Online (Sandbox Code Playgroud)
我的o/p为0.9000000000000004
为什么会这样?
这是因为十进制值不能用float或double精确表示.
一个建议:避免浮动和双重需要确切答案.请改用BigDecimal,int或long
使用int:
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10 - 9);
}
}
// Output : 1
Run Code Online (Sandbox Code Playgroud)
使用BigDecimal:
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
Run Code Online (Sandbox Code Playgroud)