【发布时间】:2014-05-02 11:14:46
【问题描述】:
许多现代语言都支持任意精度数字。 Java 有 BigInteger,Haskell 有 Integer,Python 实际上是任意的。但是对于很多这样的语言,任意精度并不是事实上的,而是以“大”为前缀。
为什么不是所有现代语言都具有事实上的任意精度?使用固定精度数字而不是任意精度有什么特别的原因吗?
如果我不得不猜测那是因为固定精度在某种程度上对应于汇编指令,因此它更优化并且运行速度更快,如果您不必担心溢出,这将是一个值得权衡的选择,因为您知道预先数字范围。有没有固定精度优于任意精度的特定用例?
【问题讨论】:
-
实际上,如果两个操作数都是整数,默认情况下python将其精度固定为整数,否则它使用IEEE 754单精度浮点。任意/固定精度十进制算术需要使用内置的 Decimal 数据类型,它允许使用任何一种(默认为 28 位精度)。
标签: performance precision arbitrary-precision