首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigInteger.Pow()和Math.Pow()有什么区别?

BigInteger.Pow()和Math.Pow()有什么区别?
EN

Stack Overflow用户
提问于 2016-04-18 15:20:11
回答 1查看 287关注 0票数 0

我发现下面这些代码片段的执行有点让人困惑:

代码语言:javascript
复制
BigInteger result = BigInteger.Pow(1000, 1000);

这将在编译过程中没有错误,但是这个错误不会:

代码语言:javascript
复制
BigInteger result = (BigInteger)Math.Pow(1000, 1000);

BigInteger.Pow()Math.Pow()的实现有什么区别?在这两种情况下,我们都是using System.Numerics

第二个抛出OverflowException BigInteger不能表示无穷大。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-18 15:26:32

1000^1000超出了double的范围,所以当您调用Math.Pow(1000,1000)时,它返回double.PositiveInfinity

不能将double.PositiveInfinity分配给BigInteger,因此出现了错误。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36698137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档