带有十进制结果的 C# BigInteger

问题描述

我正在尝试使用大量数字进行计算。例如:

22352794900029489130063309832192 / 1000000000000000000000000000000

我希望结果是 22.35279490(首选十进制),但如果我使用 BigInteger,结果会四舍五入为 22。

.NET 是否有类似于 uint128 的东西?

这样做的最佳做法是什么?

解决方法

为了保持精度,请考虑先将 BigInteger 值转换为双精度值,然后再进行除法。

BigInteger a = BigInteger.Parse("22352794900029489130063309832192");
BigInteger b = BigInteger.Parse("1000000000000000000000000000000");
double da = (double)a;
double db = (double)b;
double result = da / db;

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...