如何改变double.ToString();的标准格式

How change the standard form format of double.ToString();

以下代码:

double number = 85047564288067.5
string numberString = number.toString("G3");
Console.WriteLine(numberString);

将打印:8.5E+13

这显然是正确的,但是 toString() 函数是否有办法将 return 格式为标准格式的数字:8.5x10^13?

只需将 E 替换为 x10^:

string numberString = number.ToString("G3", CultureInfo.InvariantCulture)
                            .Replace("E", "x10^").Replace("+", "");

试试 exponential notation。 也许是这样的:

double number = 85047564288067.5
string numberString = string.Format("{0:0.#E+00}", number);
Console.WriteLine(numberString);

如果只是为了显示目的,那么这应该可以。

    double number = 85047564288067.5;
    string numberString = number.ToString("G3").Replace("E+","x10^");
    Console.WriteLine(numberString);

您可以更有效地使用它

扩展方法

 public static class DoubleExtension
      {
            public static string ToString10Th(this double p)
            {            
               return p.ToString("0.#E+0", CultureInfo.InvariantCulture).Replace("E-", "x10^-").Replace("E+", "x10^");            
            }
      }

用法

    double number = 85047564288067.5;
    Console.WriteLine(number.ToString10Th());