从大双值(C#)获取字符串

前端之家收集整理的这篇文章主要介绍了从大双值(C#)获取字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
找不到将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而不是11111111111111111111,因此它在此过程中失去了准确性.所以这里的答案是使用正确的类型进行工作.如果需要字符串,请使用字符串变量来存储该值.

编辑

This was the question我试图找到解释浮点数学的问题.感谢@GSerg

猜你在找的C#相关文章