小数点数字可以表示任何值,而无需更改和舍入问题



我说得对吗?十进制浮点数字可以表示任何"有限值"(而不是1/3的情况),而不需要任何更改,因此在二进制浮点的情况下,它不会有像0.1这样的"不可表示"数字,并且在任何数学计算后都不会累积舍入误差?如果是,怎么可能呢?我的意思是,AFAIK无论如何都有DFP数字的精度限制,所以在某一点上,他们将无法存储"真实"值,并被迫以某种方式将其四舍五入。

但不管怎样,它是否有任何"非有限"数(我想知道有没有更好的术语来形容这些值),如果不做任何更改(比如前面提到的二进制浮点数的0.1),就无法表示?

您注意到,有一些数字,如1/10,在10进制中可以用有限数量的数字来精确表示,但在2进制中却不能……然而,似乎没有任何数字可以用2进制中的有限数量数字来表示,而在10进制则不能。这是真的!

错误的地方在于把它看作是数字本身的一个基本而重要的性质。事实上,"以10为基数或以2为基数的有限位数表示"并不是很重要(除了这两个基数)。如果你想知道什么是它们的典型,这里是:

有理数A/b,其中A和b是没有公因数的有限整数,可以用以10为基数的有限位数表示,当且仅当b可以表示为2的幂乘以5的幂。

所以1/10有效。7/16作品。3/500件作品。83/625000件作品。1/3不起作用。

删除单词"乘以5的幂"后,基数-2的等效属性与基数-10的等效属性相同。所以7/16仍然有效,但1/10无效。与基数-2相比,基数-10能够用有限的位数表达更广泛的有理数(因为它具有2所具有的所有素数,然后还有一些)。

但同样,这并不是以10为基数之外的数字的基本性质。在另一个使用60进制的星球上,外星人嘲笑我们不能用有限的数字表达1/3。

最新更新