gpt4 book ai didi

C# 高 double

转载 作者:太空狗 更新时间:2023-10-29 22:04:02 30 4
gpt4 key购买 nike

我正在编写一个函数来计算 PI 的值,并将其作为 double 值返回。到目前为止,一切都很好。但是一旦函数到达小数点后14位,它就不能再保存了。我假设这是因为 double 有限。我应该怎么做才能继续获得小数点后的更多数字?

最佳答案

我根本不会用 float 来做。

回想一下你的算法是:

(1 + 1 / (2 * 1 + 1)) *  
(1 + 2 / (2 * 2 + 1)) *
(1 + 3 / (2 * 3 + 1)) *
(1 + 4 / (2 * 4 + 1)) *
(1 + 5 / (2 * 5 + 1)) *
(1 + 6 / (2 * 6 + 1)) *
(1 + 7 / (2 * 7 + 1)) * ...

计算分数的过程中的每个阶段。为什么不简单地将该分数保留为分子/分母形式?您要计算的分数是:

(4 / 3) * 
(7 / 5) *
(10 / 7) *
(13 / 9) * ...

顶部只有 4 * 7 * 10 * 13 ...,底部只有 3 * 5 * 7 * 9。

给自己一个 BigInteger 类(一个随 System.Numerics 中的 4.0 框架提供),您可以轻松地计算任意大的分子和分母。那么你只是有将商转换为十进制的问题。嗯,这很容易。大概你知道如何做长除法。只需对分子和分母实现一个长除法算法,即可得出所需的位数。

关于C# 高 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4107047/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com