您可以使用免费提供的,任意精度,BigDecimal的距离java.math
,这是一部分J#再发行组件包微软,是一种管理的.NET库.
在项目中放置对vjslib的引用,你可以这样:
using java.math;
public void main()
{
BigDecimal big = new BigDecimal("1234567890123456789011223344556677889900.0000009876543210000987654321");
big.add(new BigDecimal(1.0));
Debug.Print(big);
}
Run Code Online (Sandbox Code Playgroud)
将以下内容打印到调试控制台:
1234567890123456789011223344556677889901.0000009876543210000987654321
请注意,正如已经提到的,.NET 2010包含一个BigInteger类,事实上,它已经在早期版本中可用,但仅作为内部类(即,您需要一些反射才能使其工作).
F# 库也有一些非常大的数字类型,如果您愿意使用的话......
我长期以来一直在寻找解决方案,今天遇到了这个库:
有符号 128 位浮点数据类型库,具有 64 个有效精度位(双精度数为 53 位)和 64 位指数(双精度数为 11 位)。四边形比双精度数具有更高的精度和更大的范围,在处理非常大或非常小的值(例如概率模型中的值)时特别有用。从版本 2.0 开始,所有 Quad 算术都会被检查(下溢到 0,上溢到 +/- 无穷大),具有特殊的 PositiveInfinity、NegativeInfinity 和 NaN 值,并遵循与 .Net Double 算术和比较运算符相同的规则(例如 1/ 0 == PositiveInfinity, 0 * PositiveInfinity == NaN, NaN != NaN),使其成为现有代码中 Double 的便捷替代品。