将浮点数转换为1E形式的字符串
本文关键字:字符串 1E 浮点数 转换 | 更新日期: 2023-09-27 18:10:43
我目前正在尝试将float转换为字符串的特定格式。
如果我有一个值为0.000001的浮点数,我如何保持它的原始格式。
当我在
行中执行操作时float f = 0.000001;
string s = f.ToString();
Console.WriteLine(s);
我得到一个输出1E-06。我如何保持0.000001的原始形式,不仅对于上面的例子,而且对于任何浮点数。
另外,我如何将字符串转换为1EX格式而不是0.00…如果我需要的话。
谢谢
您需要R
,或往返格式字符串。这将尽可能精确地写出该值,以便在必要时将其解析回float
并得到完全相同的值:
string s = f.ToString("R");
//Writes 0.000001
要用科学记数法写出来,使用E
格式字符串:
string s = f.ToString("E");
//Writes 1E-06
你可以在MSDN上查看所有的数字格式字符串
try . tostring ("G")。MSDN给出如下解释:
-123.456 ("G", en-US) -> -123.456
-123.456 ("G", sv-SE) -> -123,456
123.4546 ("G4", en-US) -> 123.5
123.4546 ("G4", sv-SE) -> 123,5
-1.234567890e-25 ("G", en-US) -> -1.23456789E-25
-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25
float f = 0.000001f;
string s = f.ToString("#.#########", System.Globalization.CultureInfo.InvariantCulture);
s = f.ToString("N" + s.Length);
Console.WriteLine(s);
使用'N'后跟小数点后位数
float f = 0.000001F;
string s = f.ToString("N6");
这里有6位小数