上题回顾与解析
System.out.println(3.0 * 10 == 30.0);
System.out.println(3.14 * 10 == 31.4);
System.out.println(3.1415 * 10 == 31.415);
返回结果是啥?
答案:
true
false
false
解析: 看看这段代码
System.out.println(3.0 * 10);
System.out.println(3.14 * 10);
System.out.println(3.1415 * 10);
//输出
30.0
31.400000000000002
31.415000000000003
结果就很显然了。 计算机用二进制来表示小数的,对于某些小数,二进制无法精确表示,因为二进制只能表示2的n次方的数(就比如十进制中的1/3一样)。浮点数的计算不精确,所以如果用于商业计算,一般使用BigDecimal进行运算
每日一题
public static void main(String[] args) {
int j = 0 ;
for (int i = 0; i < 100 ; i++) {
j = j++;
}
System.out.println(j);
}
输出什么 【阅读原文】查看每日一题系列文章~
end~thanks!