如何从指数表示法中去除零

12
我正在使用C#中的指数格式来格式化十进制数。例如,如果数字是:
0.0001234567

使用

进行格式化。

(0.0000123456).ToString("E4");
展示。
1.2345E-004

我该如何去掉指数中的前导零,使其呈现如下形式?

1.2345E-4
2个回答

12

引用自MSDN:

格式说明符的大小写表示指数前缀是 "E" 还是 "e"。指数始终由加号或减号和至少三个数字组成。如果需要,将用零填充指数以满足这个最小值。

这是使用标准数字说明符的情况。

然而,使用自定义数字格式,您可以设置 0 的数量:

987654 ("#0.0e0") -> 98.8e4

对于您的情况,这是

(0.0000123456).ToString("#0.0E0"); //12.3E-6

在 BobSort 的评论后进行编辑

如果需要科学计数法,您可以使用以下方式指定小数点前只需要一个数字:

(0.0000123456).ToString("0.00#E0"); //1.23E-5

1
你的答案已经非常接近了,唯一的问题是科学计数法只需要小数点前面的一位数字。我猜我需要从格式字符串的开头删除 # 符号。 - AaA

3
假设您需要始终显示小数点后的4个数字,请尝试:
"0.0000E+0"

所以它会显示。
(0.0000123456).ToString("0.0000E+0"); //1.2345E-5 
(0.0000120000).ToString("0.#E+0");    //1.2000E-5

如果您不需要显示小数点后四位,请使用以下代码:

"0.#E+0"

因此它将显示。
(0.0000123456).ToString("0.#E+0"); //1.2E-5
(0.0000120000).ToString("0.#E+0"); //1.2E-5

你的假设是正确的,我需要小数点前一位和小数点后四位。 - AaA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接