c#将String转换为双精度损失

use*_*371 4 c#

我有以下内容:

string value = "9223372036854775807";
double parsedVal = double.Parse(value, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

...结果是9.2233720368547758E+18不完全相同的数字.如何在不损失精度的情况下将字符串转换为double?

Mar*_*ell 8

double只能保证16(大约)十进制数字的精度.您可能会尝试切换到decimal(可以使用更多的位,并保持该值具有足够的空间).