为什么Erlang不包含数学函数的任意精度?我最近不得不使用math:pow(2,4333)
,它会抛出错误。为什么Erlang不使用像GMP这样的库?有没有计划将它包含在标准库中? (Haskell使用它,[strike]甚至Java都有bignums [strike])。
感谢。
更新:
要添加更多透视图,我了解可以使用NIF完成。我正在解决来自hackerrank的问题,其中输入使用更大的数字。 pow / 2可以很容易地用Erlang编写,但它可以工作,但是对于更大的计算,它会很慢
Java为pow
返回两倍,因此它不适用于Math.pow(2, 1024)
Infinity
。
答案 0 :(得分:6)
Erlang有整数的bignums但使用64位IEEE标准浮点数。因此,虽然默认情况下您可以愉快地使用整数计算factorial(10000)
,但math
库使用浮点,因此math:pow(2, 4333)
不起作用。