如何提高大数字的双精度类型?

How to increase precision of double type for large numbers?

在此示例代码中

double number = 2646849856355434345;
Console.WriteLine( number % 5 );

如果我使用 Double 进行此操作,它不会给出准确的答案。这里它会在应该输出“0”的地方输出“1”。

有没有办法提高大双数的精度?

注意: 我知道 BigInteger 并且我可以使用它们,但是 BigInteger 需要很长时间,我想知道我是否可以使用双打具有相同的精度。

您可以使用 Decimal.

适用于金融货币计算。 Double 基于 IEEE 浮点运算标准 (IEEE 754)。

如果您想了解二进制浮点数和十进制浮点数之间的区别,请阅读以下文章(reference)。

Binary floating point (float/double)
Decimal floating point(十进制)

Double 不应用于需要小数精度的运算,您应该使用 Decimal 数据类型进行小数运算。

Double数据类型仅对二进制运算是精确的,基于二进制浮点数,不可能 100% 对十进制运算精确。