如何在.NET Framework中没有科学记数法的情况下将double转换为浮点字符串表示形式?
"小"样本(有效数字可以是任何大小,例如1.5E200或1e-200):
3248971234698200000000000000000000000000000000
0.00000000000000000000000000000000000023897356978234562
Run Code Online (Sandbox Code Playgroud)
的无标准的数字格式都是这样的,和一个自定义格式也似乎并没有让小数点后具有开放位数.
这不是如何将double转换为字符串而没有10代表(E-05)的重复,因为那里给出的答案并没有解决手头的问题.这个问题中接受的解决方案是使用固定点(例如20位数),这不是我想要的.固定点格式化和修剪冗余0不能解决问题,因为固定宽度的最大宽度为99个字符.
注意:解决方案必须正确处理自定义数字格式(例如,其他小数分隔符,具体取决于区域性信息).
编辑:问题实际上只是取代前面提到的数字.我知道浮点数如何工作以及可以使用和计算哪些数字.
我需要将十进制转换为字符串,在此标尺中:
120.00 - "120"
120.01 - "120.01"
120.50 - "120.50"
Run Code Online (Sandbox Code Playgroud) 找不到将double转换为字符串的简单方法.我需要转换大数而不失真.如:
double d = 11111111111111111111;
string s = d.ToString();
Console.WriteLine(s);
//1.11111111111111E+19
Run Code Online (Sandbox Code Playgroud)
如何从double值获取与用户输入完全相同的字符串值.
11111111111111111111111 => "11111111111111111111111"
1.111111111111111111111 => "1.111111111111111111111"
有什么想法可以做到吗?