2015-02-27 2 views
0

Есть ли культура, которая не использует тире (-) для отрицательных чисел?Требуется ли int.ToString (CultureInfo.InvariantCulture)?

Если мне не придется иметь дело с отрицательными числами, будет ли int.ToString() давать одну и ту же строку чисел во всех культурах?

У меня есть фрагмент кода с int.ToString (CultureInfo.InvariantCulture), и я хочу убедиться, что я могу упростить его и удалить параметр InvariantCulture.

+0

Даже без негативов, число '1234' могут быть представлены в различных культурах, как' 1,234', '1 234' или '1234', например. –

ответ

1

Вы должны не только рассматривать культуры, но и люди, которые устанавливают региональные настройки Windows, чтобы иметь странный отрицательный знак или другие параметры.

Да, вы можете установить эти:

Windows 8.1 regional settings dialog

Я предполагаю, что нет (почти) не устанавливать это один, но лучше перестраховаться, чем потом сожалеть. Кроме того, я не буду предполагать, что вам не нужно иметь дело с негативами. Когда-нибудь вы это сделаете, и тогда этот код по-прежнему будет работать. Надежное кодирование лучше, чем предполагать.

+0

Также связан этот [вопрос] (http://stackoverflow.com/questions/8492449/is-int32-tostring-culture-specific) и соответствующий ответ –

+0

Thx. Что делать, если мне нужно иметь дело с положительными цифрами? Тогда это будет безопасно? Я не могу себе представить, что это не ... – Manuel

+0

Мне тоже, но * что если *. И что, если логика изменится когда-нибудь, так что отрицательные * разрешены? У вас есть шанс сделать это прямо сейчас. –

0

Есть культуры, где они будут помещены в скобки. Кроме того, в зависимости от того, вписываете ли вы в культуру слева направо или справа налево, черточка может находиться на другой стороне номера. Таким образом, с отрицательными числами вы смотрите по крайней мере три возможных formattings

  • -123
  • 123-
  • (123)

Взгляните на MSDN для получения более подробной информации.

Также, даже если вы не используете отрицательные числа, на ваш результат по-прежнему может влиять десятичный разделитель. В зависимости от культуры это может быть кома , или точка .. Так 123456789 может иметь две формы:

  • 123.456.789
  • 123.456.789
Смежные вопросы