在自定义科学计数法中格式化双精度值

时间:2014-02-19 09:30:15

标签: c# .net formatting

我按如下方式格式化我的值:

string text = value.ToString("0.000E0##");

这似乎适用于某些数字,即:

0.1          -> 1.000E-1
0.12         -> 1.200E-1
0.123        -> 1.230E-1
0.1234       -> 1.234E-1
1.2E-34      -> 1.200E-34
1.23E-45     -> 1.230E-45

......但与其他人失败,即:

0.12345      -> 1.234E-15 //INCORRECT

为什么会这样?

2 个答案:

答案 0 :(得分:2)

我无法在custom numeric format string specifiers中找到格式字符串中##之后的E0应该是什么意思,你想要什么?

我认为你应该只使用0.000E0,它按预期工作。

答案 1 :(得分:1)

您可以指定自定义格式。

var num = 3147.3;
num.ToString("\\0.#####E0"); // "0.31473E4"

希望这会有所帮助..