精确计算多达 15 位小数

Calculate up to 15 decimal places with precision

如何精确计算最多 15 位小数?在这个例子中,我在 List<double>

中有 3 个双打
4.080000000000001
22.830000000000002
307.5

代码如下:

List<double> values = new List<double> { 4.080000000000001, 22.830000000000002, 307.5 };

var result = values.Sum();

结果等于334.41

我如何计算这个精度应该是多少?

334.410000000000003

使用 System.Decimal 类型而不是 System.Double

List<decimal> decimals = new List<decimal>() 
{ 4.080000000000001m, 22.830000000000002m, 307.5m };
decimal result = decimals.Sum();
Console.WriteLine(result);
Console.ReadLine();

结果:334.410000000000003

请注意,您需要在文字上使用 'm' 词缀来表示它是十进制文字而不是双精度文字。