gpt4 book ai didi

c# - C# 中的 BigInteger 除法

转载 作者:可可西里 更新时间:2023-11-01 08:37:48 25 4
gpt4 key购买 nike

我正在编写一个需要在 C# 中准确划分 BigInteger 类的类。

例子:

BigInteger x = BigInteger.Parse("1000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
BigInteger y = BigInteger.Parse("2000000000000000000000000000000000000000000000000000000000000000000000000000000000000");

x /= y;

Console.WriteLine(x.ToString());

//Output = 0

问题是作为一个整数,它自然不包含十进制值。我怎样才能克服这个问题以获得 0.5 的真实结果(给定示例)。

附言解决方案必须能够准确地划分任何 BigInteger,而不仅仅是示例!

最佳答案

在上面的例子中,数字仍然小到可以转换为double,所以在这种情况下你可以说

double result = (double)x / (double)y;

如果 xy 对于 double 来说太大但仍然具有可比性,也许这个绝妙的技巧会有所帮助:

double result = Math.Exp(BigInteger.Log(x) - BigInteger.Log(y));

但一般来说,当BigInteger很大,而且它们的商也很大时,如果不导入第三方库就很难做到。

关于c# - C# 中的 BigInteger 除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859111/

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