【问题标题】:how can I remove zeros from exponent notation如何从指数符号中删除零
【发布时间】:2012-02-05 18:38:22
【问题描述】:

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

0.0001234567

格式化

(0.0000123456).ToString("E4");

表演

1.2345E-004

如何从指数中删除前导零,使其如下所示?

1.2345E-4

【问题讨论】:

    标签: c# number-formatting format-specifiers


    【解决方案1】:

    引用MSDN:

    格式说明符的大小写指示是在指数前加上“E”还是“e”。指数总是由一个加号或减号和至少三位数字组成。如果需要,用零填充指数以满足此最小值。

    这是标准数字说明符。

    但是,使用 custom number format,您可以设置 0 的数量:

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

    对于你的情况,它是

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

    在 BobSort 评论后编辑

    如果您需要科学计数法,您可以指定只需要小数点前一位,如下所示:

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

    【讨论】:

    • 你的答案足够接近,唯一的问题是科学概念只需要小数点前一位。我想我需要从格式字符串的开头删除#
    【解决方案2】:

    假设您需要始终显示小数点后 4 位,请尝试

    "0.0000E+0"
    

    所以它会显示

    (0.0000123456).ToString("0.0000E+0"); //1.2345E-5 
    (0.0000120000).ToString("0.#E+0");    //1.2000E-5
    

    如果您不需要显示小数点后 4 位,请使用

    "0.#E+0"
    

    所以它会显示

    (0.0000123456).ToString("0.#E+0"); //1.2E-5
    (0.0000120000).ToString("0.#E+0"); //1.2E-5
    

    【讨论】:

    • 你的假设是正确的,我需要小数点前一位和小数点后四位。
    猜你喜欢
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2018-07-29
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多