以指数形式表示数字

Posted

技术标签:

【中文标题】以指数形式表示数字【英文标题】:Representing Numbers in Exponential form 【发布时间】:2012-02-14 07:26:05 【问题描述】:

我需要将以下类型的十进制数转换为指数格式

编号0.00001格式化为0.01E-04

为此,我使用以下方法: string.Format("0:E2", dValue);

但这会返回0.01E-004

所以我需要将E 之后的位数限制为2。 这可能吗?如果是这样:如何?

【问题讨论】:

嗯,需要将小数点后和E后的位数限制为2。所以应该表示为0.01E-04。 【参考方案1】:

您需要使用自定义格式字符串来指定如何格式化小数:

string.Format("0:0.##E+00", dValue);

您可以在 MSDN here 上找到有关自定义数字格式字符串的更多信息。有一个关于Exponent 格式的特定部分。

【讨论】:

【参考方案2】:

认为你想要这样的东西:

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

(更改#字符的数量以更改在E之前的小数位数。)

您也可以通过调用string.Format 来使用复合格式说明符来做到这一点,但我个人会使用一个简单的格式说明符,除非您需要在其周围添加其他文本,在这种情况下您会使用类似:

string text = string.Format("Before 0:0.0###E+00 After", dValue);

【讨论】:

@PranayRana:对不起,我不明白你的意思。

以上是关于以指数形式表示数字的主要内容,如果未能解决你的问题,请参考以下文章

[洛谷P1017] 进制转换

洛谷 P1017 进制转换

负进制的转换

[NOIP2000] 提高组 洛谷P1017 进制转换

Java以指数表示法解析数字

实型常量