Ответ 1

Параметры формата для Int32.ToString() см. Здесь или здесь.

Например:

string s = myIntValue.ToString("#,##0");

В 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

Ответ 5

string formatted = string.Format("{0:##,#}", 123456789);

Это зависит от культуры вашего компьютера. Некоторые страны используют запятые, некоторые страны используют точки. На моем компьютере выход был: 123.456.789