找不到将 double 型转换为字符串的简单方法。我需要在不失真的情况下转换大数字。如:
double d = 11111111111111111111;
string s = d.ToString();
Console.WriteLine(s);
//1.11111111111111E+19
如何从与用户输入完全相同的 double 值中获取字符串值。
11111111111111111111111 => "11111111111111111111111"
1.111111111111111111111 => "1.111111111111111111111"
有什么想法可以做到吗?
最佳答案
double是浮点类型。所以它的准确性有限。在您的示例中,您可以执行以下操作:
double d = 11111111111111111111;
string s = d.ToString("F0");
Console.WriteLine(s);
但正如您将看到的,这将输出 11111111111111100000
而不是 1111111111111111111
,因此它在此过程中失去了准确性。所以这里的答案是为工作使用正确的类型。如果需要字符串,请使用字符串变量来存储值。
编辑
This was the question我试图找到解释 float 学问题的方法。感谢@GSerg
关于c# - 从大双值中获取字符串(C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40376988/