从大双值(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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...