修改";G";C#中的字符串格式化程序,用于在数字至少包含两个零d.p时使用指数
是否可以修改标准数字格式“G”,以便在数字小数点后包含2个以上零时使用指数。如果没有,将赞赏其他解决方案 e、 g.修改";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
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()的示例