来源:Java编程的逻辑
计算机之所以叫"计算"机就是因为发明它主要是用来计算的,"计算"当然是它的特长,在大家的印象中,计算一定是非常准确的。但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的。
比如:
float f = 0.1f*0.1f;
System.out.println(f);
这个结果看上去,不言而喻,应该是0.01,但实际上,屏幕输出却是0.010000001,后面多了个1。
看上去这么简单的运算,计算机怎么会出错了呢?
简要答案
实际上,不是运算本身会出错,而是计算机根本就不能精确的表示很多数,比如0.1这个数。
计算机是用一种二进