输入这段代码
public class TestQuestion
{
public static void main(String[] args){
System.out.println(1-0.8);
}
}
编译,运行发现结果根本就不是0.2而是0.199999999996,哪位大虾能解释一下为什么啊?
public class TestQuestion
{
public static void main(String[] args){
System.out.println(1-0.8);
}
}
编译,运行发现结果根本就不是0.2而是0.199999999996,哪位大虾能解释一下为什么啊?
import java.math.BigDecimal;
import java.math.MathContext;
public class Test {
public static void main(String[] args) {
MathContext mc = new MathContext(1);//设置精度
BigDecimal bd1 = new BigDecimal(1.0, mc);
BigDecimal bd2 = new BigDecimal(0.8, mc);
bd1 = bd1.subtract(bd2);
System.out.println(bd1.toString());
}
}一个简单的例子!
计算机中的浮点型的值大都是不精确的
不过JAVA中有高精度类BigDicemail
很方便
(2)浮点表示的数不是精确的数,在JAVA中表示精确数必须用BigDicemail