gpt4 book ai didi

C# 科学计算 - 大数小数位数

转载 作者:行者123 更新时间:2023-12-04 01:05:27 25 4
gpt4 key购买 nike

我有一个问题需要建议:我必须在 (plus/minus, signed) 范围内对大数进行计算;整数部分:70*(10^27) 和精度,小数部分:9*(10^-31)。大多数时候,我只进行简单的操作(add/subtr/mult/div),我可以忽略小数部分的大多数数字(仅使用 8 位小数)——但是,在许多情况下,我必须取“整数” decimal 并以该精度进行计算(并存储用于后续计算的结果)。一个数字的例子:

66898832014839425790021345548 . 8499970865478385639546957014538

我看到了关于 decimal 与 long 等的文章。我应该使用 decimal 还是应该制作自定义类型?如果稍后是,我该如何进行简单的算术运算? (最后一位小数点四舍五入是可以接受的)我的项目都在 C# 和 SQL Server 中;非常感谢您。

最佳答案

C#中没有标准实现,但是你可以基于BigInteger创建自己的库喜欢

public BigDecimal(BigInteger integer, BigInteger scale)

您还可以引用一些第 3 方库,例如 GMP其 .Net 分支/端口如 Math.Gmp.Native.NET , libgmp

有一些自定义库,正如 Franz Gleichmann 在他的评论中提到的:BigDecimal , AngouriMath

对于 SQL Server,大多数库使用字符串来存储此类数据。例如,在 Java 中有 BigDecimal并通过 JDBC 映射到字符串.

关于C# 科学计算 - 大数小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66623697/

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