用指数形式表示数字

6
我有一个要求,需要将以下类型的十进制数转换为指数格式。
数字0.00001格式化为0.01E-04 我使用以下方法进行转换: string.Format("{0:E2}", dValue); 但是这会返回0.01E-004 因此,我需要限制E后面的数字位数为2位。是否可能?如果可能的话,如何实现?

需要限制小数点后和E后的数字位数为2。因此,它应该表示为0.01E-04。 - siva
2个回答

11
您需要使用自定义的格式字符串来指定如何格式化您的十进制数:
string.Format("{0:0.##E+00}", dValue);

您可以在MSDN 这里 上了解有关自定义数字格式字符串的更多信息。其中有一个特定部分是关于指数格式的。


7
我认为您想要的是类似以下的内容:

我认为您想要的是:

string text = dValue.ToString("0.###E+00");

(将#字符的数量更改以改变 E 前面的小数位数。)
你也可以通过调用 string.Format 使用复合格式说明符来完成此操作,但个人建议除非需要在其周围放置其他文本,否则使用简单的格式说明符就可以了,例如:
string text = string.Format("Before {0:0.0###E+00} After", dValue);

@PranayRana:抱歉,我不知道你的意思。 - Jon Skeet

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