C#:指数格式说明符

时间:2018-01-22 20:23:17

标签: c# formatting number-formatting exponential mantissa

我有一个双号:

var params = {
        GroupId: "sg-1234556",
        GroupName: "sggroupname",
        IpPermissions: [
               {
                    FromPort: 9090,
                    ToPort: 9090,
                    IpProtocol: "tcp",
                    IpRanges: [{
                            CidrIp: "0.0.0.0/0"
                                }],
                }]
    }

我需要将其显示为

  

7.7725e-2

当我尝试使用它时:

element.MaxAllowableConcLimitPpm = 0.077724795640326971;

它返回

  

7.7725e-002

怎么说尾数应该有一个符号而不是3?

格式如下:

element.MaxAllowableConcLimitPpm.ToString("e4", CultureInfo.InvariantCulture)

返回

  

5.0000e2

而不是

  

5.0000e + 2

1 个答案:

答案 0 :(得分:10)

您必须使用自定义数字格式字符串 - 标准数字格式字符串在指数中始终至少有三位数。

自定义字符串示例:

using System;

public class Test
{    
    static void Main()
    {
        double value = 0.077724795640326971;
        Console.WriteLine(value.ToString("0.0000e+0")); // 7.7725e-2
    }
}

来自standard numeric format strings的文件(强调我的):

  

格式说明符的情况表明是否在指数前加上" E"或者" e"。 指数始终由加号或减号以及至少三位数组成。如果需要,指数将填充零以满足此最小值。