浮点数精度丢失
两个浮点数加减,会出现精度丢失。
原因:计算机不能准确表示每一个浮点数的值,很多浮点数表示的是一个很接近该浮点数的值。
这里只是简略举个例子。
比如0.1这个浮点数
0.1 X 2 = 0.2 0
0.2 X 2 = 0.4 0
0.4 X 2 = 0.8 0
0.8 X 2 = 1.6 1
(1.6 - 1 = 0.6)
0.6 X 2 = 1.2 1
(1.2 - 1 = 0.2)
0.2 X 2 = 0.4 0
0.4 X 2 = 0.8 0
0.8 X 2 = 1.6 1
(1.6 - 1 = 0.6)
0.6 X 2 = 1.2 1
(1.2 - 1 = 0.2)
0.2 X 2 = 0.4 0
0.4 X 2 = 0.8 0
0.8 X 2 = 1.6 1
······
// 无限循环下去
在idea运行一下,之所以第一个能直接输出0.1
是因为System.out.println(0.1);这句,先把浮点数转换成字符串,再输出。