0 0

Erlang math:pow(2,10000).出错!3

math:pow(2,10000).
** exception error: bad argument in an arithmetic expression
     in function  math:pow/2
        called as math:pow(2,10000)

太大了?
问题补充:
@lovewhzlq :

我Erlang很初级,所以也没有想出解决方法。不过我发邮件给Erlang的邮件组,有个国外的哥们给了个自己写的幂运算pow的方法,计算大数完全没问题,代码在下面。

我倒是很好奇为什么Erlang自带的pow方法无法计算大数,自己写个简单的pow却可以。

-spec pow(integer(), non_neg_integer()) -> integer()  
      ; (float(), non_neg_integer()) -> float().  
  
pow(X, N) when is_integer(N), N >= 0 -> pow(X, N, 1).  
  
pow(_, 0, P) -> P;  
pow(X, N, A) -> pow(X, N-1, A*X).  

2009年4月09日 19:46

1个答案 按时间排序 按投票排序

0 0

我觉得应该是,这么大的数没法表示,只能用字符串啊

2009年4月16日 16:04

相关推荐

Global site tag (gtag.js) - Google Analytics