Pat*_*han 7

2.2是在二进制浮点中不能完全表示的双精度.实际上,您将double 2.2与将其转换为float的结果进行比较,使用舍入,然后返回double.

假设double是IEEE 754 64位二进制浮点数,float是IEEE 754 32位二进制浮点数,则最接近的小数位数2.2具有精确值2.20000000000000017763568394002504646778106689453125,将其转换为float的结果为2.2000000476837158203125.将float转换回double不会改变其值.2.20000000000000017763568394002504646778106689453125不等于2.2000000476837158203125.

2.5在二进制浮点系统的float和double中都是完全可表示的,因此转换为float和转换回double都不会改变该值.2.5等于2.5.