我知道浮点乘法有错误但是纯整数乘法有错误吗?让我们说我使用Python,有多大的整数A和B可以计算A * B并得到完全正确的答案?墙在哪里?添加也一样吗?
答案 0 :(得分:2)
(正确)浮点乘法没有错误。舍入可能会发生,但这不是错误,这是算术的定义行为。通俗地说,这被称为“舍入错误”,但它不是正常意义上的“错误”。
(正确)整数乘法没有错误。在某些语言中,可能会发生溢出,但这不是错误,这是算术*的定义行为。
特别是在Python中,整数乘法不会发生溢出**;结果等于“数学上精确”的结果,并在必要时默默地提升为bignum。添加也是如此。
[*]有些语言溢出会产生陷阱或抛出异常;但是,这是那些语言中定义的行为。
[**]只要结果不是很大,就无法分配存储空间。