2024-04-23 23:05:01 发布
网友
我知道浮点数有它们的limitations,所以这是可以预期的:
>>> 0.1 + 0.2 == 0.3 False
但为什么这是有效的?计算机也不能存储0.45,0.55reliably对吧?你知道吗
>>> 0.45 + 0.55 == 1.00 True
我想知道,在第一种情况下,计算机是如何无法纠正其错误的,而在后一种情况下,它是如何纠正的。你知道吗
如你所知,大多数十进制数字不能准确地存储。除1.0之外,以上所有数字都是这样。你知道吗
1.0
但它们的存储精度很高。代替0.3,使用一些非常接近的可表示数字。它不仅非常接近,而且是最接近这样的数字。你知道吗
0.3
当您计算0.1 + 0.2时,会计算另一个可表示的数字,它也非常接近0.3。你是“不幸的”,它与最接近的可表示数字不同。你知道吗
0.1 + 0.2
这并不涉及真正的运气,0.1和0.2都用稍微大一点的数字来表示。添加时,这两个错误相加,因为它们的符号相同,得到的结果类似于0.30000000000000004。你知道吗
0.1
0.2
0.30000000000000004
在0.45 + 0.55中,错误具有不同的符号,可以抵消。你知道吗
0.45 + 0.55
如你所知,大多数十进制数字不能准确地存储。除
1.0
之外,以上所有数字都是这样。你知道吗但它们的存储精度很高。代替
0.3
,使用一些非常接近的可表示数字。它不仅非常接近,而且是最接近这样的数字。你知道吗当您计算
0.1 + 0.2
时,会计算另一个可表示的数字,它也非常接近0.3
。你是“不幸的”,它与最接近的可表示数字不同。你知道吗这并不涉及真正的运气,
0.1
和0.2
都用稍微大一点的数字来表示。添加时,这两个错误相加,因为它们的符号相同,得到的结果类似于0.30000000000000004
。你知道吗在
0.45 + 0.55
中,错误具有不同的符号,可以抵消。你知道吗相关问题 更多 >
编程相关推荐