首页 文章

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

提问于
浏览
0

我是对的,decimal floating point numbers可以代表任何"finite-value"(不是1/3情况)而没有任何改动,所以它没有像0.1 in case of binary floating point这样的"non-representable"数字,并且无论如何都可以't accumulate a rounding error after any mathematical calculations? If so, how is it possible? I mean, AFAIK there'精确限制DFP广告管理系统数字,所以有一点他们将无法存储"real"值并被迫以某种方式将其舍入 .

但无论如何 - 它是否有任何“非有限”数字(我不知道这些值是否有更好的术语)无法在没有任何改动的情况下表示(如在二进制浮点数的情况下已经提到的0.1)?

1 回答

  • 0

    你注意到的是有一些数字,比如1/10,它们可以用base-10中有限数量的数字来表示,但不是在base-2中...但似乎没有数字是可以用base-2中有限位数表示但不能用base-10表示 . 确实如此!

    你出错的地方在于把它当作数字本身的一个基本而重要的属性 . 实际上,“在基数为10”或基数为2的“有限位数”中表示并不是非常重要(除了这两个基数) . 如果您想知道它们的代表性,那么它是:

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

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

    删除单词“乘以5的幂”后,base-2的等效属性与base-10相同 . 所以7/16仍然有效,但1/10没有 . Base-10能够表达更宽范围的有理数,其有限位数比base-2更多(因为它具有2所有的所有素因子,然后是一些) .

    但同样,这不是基数10背景之外的数字的基本属性 . 在另一个使用基地60的星球上,外星人嘲笑我们因为无法用有限数字的数字表示1/3 .

相关问题