转变过程
-
如图,假设将double类型能精确表示的数字落在数轴上,分别是double1、double2、double3。
-
这个时候,我们有十进制数字a,想要转变成double表示,这个时候得到的是double2,因为double2是距离这个十进制数a在数轴上最近的double值
-
我们拿到了double2,这个时候想要再将其转换成十进制数,应该怎么做?做法就是在区间1内,找到”最短“的十进制数。 “最短”是指十进制数的位数,假设2.332、2.4、2.42都在区间1,那么2.4比2.333要"短",2.4比2.42也要"短",同时2.4也比区间1内的所有数字都要短(因为2.5和2.3都超出区间范围了),那么double2最终转变成的十进制数字就是2.4
一句话总结
十进制变double,取最近的double精确值;double转十进制,取 【double-二分之一最小精度,double+二分之一最小精度】这个闭区间内数字位数“最短”的十进制数字