将浮点数转换为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…如果我需要的话。

谢谢

将浮点数转换为1E形式的字符串

您需要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位小数