В String.Format можно использовать те же параметры формата, что и в
string s = String.Format("the number {0:#,##0}!", myIntValue);
Обратите внимание, что , в этом формате не указать "использовать запятую", а, скорее, следует использовать группировку символов для текущей культуры, в положениях культурно-специфичны.
Таким образом, вы получаете "1 234 567 890" для PL-PL или "1,23,45,67,890" для hi-IN.
Ответ 2
Использование текущего разделителя тысяч локалей:
int n = 1234567 ;
n.ToString("N0");
Или используйте перегрузку для ToString, которая принимает культуру как параметр.
Ответ 3
var decimalValue = 1234567m;
var value = String.Format("{0:N}", decimalValue); // 1,234,567.00
или без центов
var value = String.Format("{0:N0}", decimalValue); // 1,234,567
Это зависит от культуры вашего компьютера. Некоторые страны используют запятые, некоторые страны используют точки. На моем компьютере выход был: 123.456.789