天天看点

3*0.1==0.3为什么是false而不是true呢

今天看到了这个3*0.1==0.3,于是上网查了一下。我们的计算机用的是10进制的算法,它是用10的质子也就是2和5来进行运算。

System.out.println(3*0.1);
   打印的结果为:0.30000000000000004
           

但是我换一个运算结束后的尾数能被2或5整除的

System.out.println(3*0.5);
	 打印的结果为:1.5
           

可能我这样比较难以理解。我把我看到的这个运算原理链接贴在下面。

https://blog.csdn.net/ialexanderi/article/details/78936466