формат строки в C # - PullRequest
       5

формат строки в C #

6 голосов
/ 16 августа 2010

У меня есть значение в диапазоне от 1 до 10000000. После значения 10000 мне нужно показать значения как 1E6,1E7,1E8, .... Как установить это в string.Format?

Спасибо всем за ответы.
Теперь я могу отображать 1E5,1E6,1E7, ...., используя формат "0.E0" но я не хочу устанавливать "E" от 1 до 10000.
Как это сделать?

Ответы [ 5 ]

2 голосов
/ 16 августа 2010

Примерно так должно получиться:

void Main()
{
  Console.WriteLine(NumberToString(9999));
  Console.WriteLine(NumberToString(10000));
  Console.WriteLine(NumberToString(99990));
  Console.WriteLine(NumberToString(100000));
  Console.WriteLine(NumberToString(10000000));
}

// Define other methods and classes here
static string NumberToString(int n)
{
  return (n > 10000) ? n.ToString("E") : n.ToString();
}

=>

9999
10000
9.999000E+004
1.000000E+005
1.000000E+007

nb: выберите лучшее имя для функции.

2 голосов
/ 16 августа 2010

Вы можете использовать обозначение экспоненты , но я думаю, что оно будет работать для всех чисел, а не только для тех, которые больше 10000. Возможно, вам понадобится условие для обработки этого случая.

0 голосов
/ 16 августа 2010
String.Format("10^8 = {0:e}", 100000000"); //The "e" will appear lowercase
String.Format("10^8 = {0:E}", 100000000"); //The "E" will appear in uppercase

Если вы хотите, чтобы он был красивее, попробуйте это:

Console.WriteLine("10^8 = " + 100000000.ToString("0.##E0"));
0 голосов
/ 16 августа 2010

Предлагаю обозначить значение как число с плавающей запятой.Таким образом, вы можете использовать NumberStyles.AllowExponent, и это обеспечит именно то, что вы ищете.

    string i = "100000000000";
    float g = float.Parse(i,System.Globalization.NumberStyles.AllowExponent);

    Console.WriteLine(g.ToString());
0 голосов
/ 16 августа 2010

Научная запись? Вот некоторая помощь по этому поводу: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierExponent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...