ToString (“0”) по сравнению с ToString (CultureInfo. InvariantCulture)

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

14
задан Jan Zich 28 September 2009 в 14:59
поделиться

4 ответа

Два метода не эквивалентны: в первом используется CurrentCulture . Это может привести к лишним точкам / запятым в некоторых культурах (у меня нет примеров).

Когда вы используете InvariantCulture , вы уверены, что всегда используется одно и то же форматирование.

Изменить: И , если вы используете CodeAnalysis , он будет жаловаться, если вы не используете CultureInfo .

7
ответ дан 1 December 2019 в 07:39
поделиться

Насколько я понимаю, первым будет форматирование числа как минимум с одним символом с использованием культуры по умолчанию компьютера. Второй отформатирует его как число в зависимости от правил InvariantCulture.

Bobby

2
ответ дан 1 December 2019 в 07:39
поделиться

Если вы хотите указать «без форматирования, независимо от того, что», я лично думаю, что у вас есть первый вариант:

123456789.ToString("0");

лучше передает намерение. Обратной стороной может быть ситуация, когда культура переопределяет строку формата «0» для используемого числового типа.

0
ответ дан 1 December 2019 в 07:39
поделиться

Я никогда не использовал его сам, но, может быть, pexpect - это то, что вам нужно?

«Pexpect можно использовать для автоматизации интерактивные приложения, такие как ssh,

  • Инвариантный язык действительно определяет группировку цифр (разумеется, по 3 цифрам) и разделитель цифр. Таким образом, причина того, что 123456789.ToString (CultureInfo.InvariantCulture) производит «123456789», не из-за инвариантной культуры, а из-за стандартного спецификатора общего числового формата «G».

  • Так что я бы хотел говорят, что вывод таков: совершенно нормально не беспокоиться о любых дополнительных аргументах и просто использовать :

    12345678.ToString()
    

    Я думаю, что это лучший из всех случаев, потому что это означает, что обычно вы не нужно даже вызывать ToString () , потому что большинство функций печати / записи принимают всевозможные аргументы и выполняют ToString () за вас.

    22
    ответ дан 1 December 2019 в 07:39
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: