Хотя опубликованные здесь ответы ("{0:#,0}")
верны, я настоятельно рекомендую использовать более читаемую картинку (также во избежание путаницы в отношении десятичных разделителей / разделителей тысяч):
string.Format("{0:#,##0}", v); // to print 1,234
string.Format("{0:#,##0.00}", v); // to print 1,234.56
Но все эти картинки работают одинаково, включая 2 запятые для 1e6 и т. Д.