全麦吐司_3
2017-09-05 21:16
public class Code{
public static void main(String[] args){
double a = 3.0;
double b = 2.9;
if(a- b == 0.1){
System.out.println("OK");
}else{
System.out.println("ERRO");
}
}
}
首先呢,一定会报错,因为你的变量写错了……
再有呢,如果改对了,也一定打印出来的是“ERRO”……
一般不会用double做计算结果的判定,因为它不会给出精准计算结果。
通常都是用的是BigDecimal类型
不然就有可能是0.98999289898892899之类的(我瞎写的,主要是举例……)
再有,计算机计算的时候是利用二进制算的,特别对0.1,即使是正常计算,它自己也不知道0.1是什么,因为二进制没法表示,所以结果只能是逼近,但不是0.1。
我自己竟然还试了试……除了3.0-3.0 == 0.0 其他好像都不能成功,大家可以试试……
讷讷, 所以,可以用BigDecimal类型试试……
public class Code{
public static void main(String[] args){
double a = 3.0;
double b = 2.9;
if((a - b) == 0.1){
System.out.println("OK");
}else{
System.out.println("ERRO");
}
}
}
/*使用了未定义的变量 v5 v6*/
Java入门第一季(IDEA工具)升级版
1165506 学习 · 17586 问题
相似问题