В любом производственном сценарии я заставил бы Вас искать значение к желаемому количеству десятичных точек, и хранить его как 'константу' где-нибудь, Ваши классы могут добраться до него.
(если Вы не пишете научному 'Pi' определенное программное обеспечение...)
You should use a custom formatting like #,##0.00
string s = string.Format("{0:#,##0.00}", xx);
Will produce 1,234.50
when xx = 1234.5M
forget about converting to double
, that won't really help.
Have you tried this?
String.Format("{0:0,0.00}", 1234.560);
Вы знаете, что .NET имеет встроенную поддержку для правильного форматирования чисел в соответствии с региональными настройками каждого пользователя вашего приложения? Возможно, было бы лучше использовать собственные региональные настройки пользователя (платформа .NET уже знает все правильные настройки). Штаты и 1.025 в Германии. В Швеции разделитель тысяч - это пробел »
В MSDN есть специальный раздел , посвященный этой теме, которую они называют« Глобализация »(т.е. это хороший поисковый запрос, если вам когда-нибудь понадобится более подробная информация). Эта страница описывает, как использование знака фунта работает в качестве заполнителя цифры для удаления конечных нулей (как было предложено Хенком Холтерманом в предыдущем комментарии).
См. также Строки настраиваемого числового формата .
Другой вариант:
decimal d = 1234.56m;
string s = d.ToString("N"); // 1,234.56