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

时间:2018-10-17 08:44:20

标签: c# tostring

以下代码:

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

将打印:8.5E+13

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

4 个答案:

答案 0 :(得分:3)

只需将E替换为x10^

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

答案 1 :(得分:0)

如果仅用于显示目的,则应该可以完成这项工作。

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

答案 2 :(得分:0)

您可以按以下方式更有效地使用它

扩展方法

 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());

答案 3 :(得分:-1)

尝试使用exponential notation。 也许是这样的:

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