Java数据类型的陷阱
public class test{
public static void main(String[] args){
System.out.printfln(2.0-1.1);
}
}
上述代码的结果是多少呢?按理讲应该是0.9,但实际上结果并不是那样,运行结果等于0.8999999999999,
这时候怎么处理这个问题?我们需要使用到高精度处理函数 BigDecimal
,处理结果如下:
import java.math.BigDecimal;
public class test{
public static void main (String[] args){
BigDecimal Org1 = new BigDecimal ("2.0");
BigDecimal Org2 = new BigDecimal ("1.1");
System.out.println(Org1.subtract(Org2));
}
}
*需要注意:使用 BigDecimal
时需要先导入java.math.BigDecimal
,想要得到精确答案时避免使用float和double类.