2025-11-15 02:38:48
0.1减去0.1其实就是两个小数相减,结果等于0。说白了就是拿一个数减去自己,肯定得0。不过要注意的是,如果用计算器或者电脑算的话,可能显示不是精确的0,而是像0.这样的 tiny 数值。这是因为电脑处理小数的时候,有些数比如0.1在二进制里没法表示得特别准,就像用算盘算1/3一样,永远多出零点点点。
说白了就是二进制精度问题闹的。比如1/10在二进制里是0.11...无限循环的,存到电脑里只能存有限位,这就跟用圆规画正方形一样,永远画不完美。当两个0.1相减的时候,电脑先各自把0.1存成近似值,比如0.和0.,然后相减就得到0.。根据IEEE754标准,单精度浮点数能精确表示的数有大约16位,剩下的都靠四舍五入。实验数据显示,在Python里0.1-0.1等于0.00002,而Java里是0.0,这就是不同语言的精度处理方式不一样。比如在编程中,如果用这两个数做比较就会出问题,比如判断0.1-0.1是否等于0,结果可能显示false。这就像用温度计测体温,显示36.8度和36.度其实算同一个数,但机器里可能算成不同。所以遇到这种小数运算,最好用科学计数法或者给个误差范围,比如判断数值是否小于0.0001就算相等。
本题链接: