双科学记数法格式10次幂C#

时间:2016-09-30 07:03:16

标签: c# string types format double

我有double value = 30308950000;

我希望将其显示为3.03x10^10

如何使用C#实现它?

我试过了

double value = 30308950000;
Console.WriteLine(value.ToString("0.###E+0", CultureInfo.InvariantCulture));

output = 3.03E+10

我不想要3.03E+10格式,而是3.03x10^10。 感谢

2 个答案:

答案 0 :(得分:1)

轻松修复:

double value = 30308950000;
Console.WriteLine(
    value.ToString("0.###E+0", CultureInfo.InvariantCulture)
        .Replace("E-","x10^-")
        .Replace("E+","x10^"));

向Jon Skeet致敬! :)

答案 1 :(得分:0)

可悲的是,NumberFormarInfo并未提供任何 ExponentialSign 参数。

Exponential Format Specifier (E)NumberFormarInfo仅使用来自ICustomFormatter的NegativeSign,NumberDecimalSeparator和PositiveSign信息。

要执行"在模式" 中,您必须使用自己的here实施,例如https://github.com/fyhertz/libstreaming