Как изменить стандартный формат формы double.ToString (); - PullRequest
0 голосов
/ 17 октября 2018

следующий код:

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

напечатает: 8.5E+13

, что, очевидно, правильно, но есть ли способ для функции toString() возвращать числа, которые в стандартномФорма в формате: 8.5x10^13?

Ответы [ 4 ]

0 голосов
/ 17 октября 2018

Вы можете использовать его более эффективно следующим образом

Метод расширения

 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());
0 голосов
/ 17 октября 2018

Попробуйте с экспоненциальной нотацией .Может быть, что-то вроде этого:

double number = 85047564288067.5
string numberString = string.Format("{0:0.#E+00}", number);
Console.WriteLine(numberString);
0 голосов
/ 17 октября 2018

Если это только для целей отображения, то это должно сделать работу.

    double number = 85047564288067.5;
    string numberString = number.ToString("G3").Replace("E+","x10^");
    Console.WriteLine(numberString);
0 голосов
/ 17 октября 2018

Просто замените E на x10^:

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