Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改";G";C#中的字符串格式化程序,用于在数字至少包含两个零d.p时使用指数_C#_.net_String_Formatting_String Formatting - Fatal编程技术网

修改";G";C#中的字符串格式化程序,用于在数字至少包含两个零d.p时使用指数

修改";G";C#中的字符串格式化程序,用于在数字至少包含两个零d.p时使用指数,c#,.net,string,formatting,string-formatting,C#,.net,String,Formatting,String Formatting,是否可以修改标准数字格式“G”,以便在数字小数点后包含2个以上零时使用指数。如果没有,将赞赏其他解决方案 e、 g.Console.WriteLine(“{0:g}”,-0.001960231155763821)输出1.96023115576382E-03 我不能使用“E”格式化程序,因为对于,我还必须格式化double,如0.1326402168430582,其输出应为0.132640216843058 当数字在小数点后包含超过4个零时,“G”格式化程序中似乎使用了指数,例如Console.W

是否可以修改标准数字格式“G”,以便在数字小数点后包含2个以上零时使用指数。如果没有,将赞赏其他解决方案

e、 g.
Console.WriteLine(“{0:g}”,-0.001960231155763821)输出1.96023115576382E-03

我不能使用“E”格式化程序,因为对于,我还必须格式化double,如0.1326402168430582,其输出应为0.132640216843058


当数字在小数点后包含超过4个零时,“G”格式化程序中似乎使用了指数,例如
Console.WriteLine(“{0:G}”,0.000023)输出2.3E-05

您可以编写扩展方法。下面是您可以在LINQPad中复制和粘贴并运行的代码。Dump()方法是LINQPad扩展方法。因此,如果您将代码复制到VS,请忽略它

void Main()
{
    var x = -0.00160231155763821;
    var x2 = 0.099;
    var x3 = -0.001;

    x.G2Format().Dump("x");
    x2.G2Format().Dump("x2");
    x3.G2Format().Dump("x3");
}

public static class Extensions
{
    public static string G2Format(this double value)
    {
        var format = (0.01 > value) ? "{0:e}" : "{0:G}";
        return string.Format(format, value);
    }
}
它将为您提供以下结果:

x
-1.602312e-003

x2
0.099

x3
-1.000000e-003

这就是您要查找的内容吗?

提示:“标准”格式倾向于表明它不可修改。请查看MSDN Library文章中有关IFormatProvider.GetFormat()的示例