将double转换为BigInteger时出错

纳仁

在解决欧拉问题时,我碰到了这一点。

BigInteger temp = (BigInteger)Math.Pow(99, 95); Console.WriteLine(temp.ToString());

它输出以下数字。 3848960788934848488282452569509484590776195611314554049114673132510910096787679715604422673797115451807631980373077374162416714994207463122539142978709403811688831410945323915071533162168320

但是,当我尝试使用此链接查找电源时,它显示了..

3848960788934848611927795802824596789608451156087366034658627953530148126008534258032267383768627487094610968554286692697374726725853195657679460590239636893953692985541958490801973870359499

两个值是不同的我的问题是使用数学函数查找幂有一个限制还是从double到BignInteger转换是错误的?

杰普·斯蒂格·尼尔森(Jeppe Stig Nielsen)

您必须使用BigInteger.Pow,而不是Math.Pow

使用Math.Pow,返回值是双精度浮点类型,其精度大约等于15-17个有效十进制数字。因此,只有前15-17个数字是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将double转换为int时出错

来自分类Dev

将 double 转换为 BigInteger

来自分类Dev

从 Int 转换为 Double 时出错

来自分类Dev

将float转换为datetime时出错

来自分类Dev

将DICOM转换为JPEG时出错

来自分类Dev

将Object []转换为byte []时出错

来自分类Dev

将float转换为datatime时出错

来自分类Dev

将varchar转换为datetime时出错

来自分类Dev

将jpg转换为pdf时出错

来自分类Dev

将jpg转换为pdf时出错

来自分类Dev

将kml转换为geojson时出错

来自分类Dev

将int转换为NSNumber时出错

来自分类Dev

将mysql转换为mysqli时出错

来自分类Dev

将float转换为datatime时出错

来自分类Dev

将DICOM转换为JPEG时出错

来自分类Dev

将IplImage转换为Mat时出错

来自分类Dev

将varchar转换为bigint时出错

来自分类Dev

将Range转换为数组时出错

来自分类Dev

将 rxGlm 转换为 GLM 时出错

来自分类Dev

将 UUID 转换为/从 BigInteger 时出现 BufferUnderflowException

来自分类Dev

将字符转换为BigInteger

来自分类Dev

将 InputStream 转换为 BigInteger

来自分类Dev

在iOS中将nsstring转换为double值时出错

来自分类Dev

将错误,“将值'ID'转换为类型时出错”

来自分类Dev

将double转换为long时发生转换错误

来自分类Dev

从TextInputDialog将Optional <String>转换为Integer时出错

来自分类Dev

尝试将列表转换为数组时出错[]

来自分类Dev

将HttpClient响应转换为JsonObject时出错

来自分类Dev

尝试将LazySeq强制转换为IFn时出错