Как указать необязательный разделитель тысяч в C #? - PullRequest
1 голос
/ 11 октября 2011

Я пытаюсь распечатать физические величины из типа данных decimal с количеством знаков до 6 знаков после запятой. Я хочу, чтобы отображался разделитель тысяч, но только для чисел, которые> = 10 000 (или <= -10 000). </p>

Например:

  • 100 -> 100
  • 1000 -> 1000
  • 9999 -> 9999
  • 10000 -> 10000

Я использовал этот формат, но он не совсем правильный:

myNumber.ToString("#,##0.######");

Есть ли хитрость в строке формата, чтобы разделитель тысяч отображался только в том случае, если слева от десятичного разряда находятся 5 или более цифр?

Ответы [ 3 ]

4 голосов
/ 11 октября 2011

Я не думаю, что есть какой-то особенный трюк, вам придется сделать

var result = myNumber >= 10000.0m || myNumber <= -10000.0m ? 
                 myNumber.ToString("#,##0.######") : 
                 myNumber.ToString("###0.######");
1 голос
/ 11 октября 2011

Я не верю, что есть что-то «встроенное», но для такого случая были разработаны Iformatprovider и ICustomFormatter.См. iformatprovider .

1 голос
/ 11 октября 2011

Вы можете использовать myNumber.ToString ("n"), который должен использовать текущую культуру и форматировать соответственно

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