重複の可能性:
C# でカスタムの千区切り記号を使用する
次のように数値をフォーマットする文字列フォーマットが必要です。
Input: 1000 Ouput: 1 000.00
Input: 10000 Output: 10 000.00
Input: 100000 Output: 100 000.00
重複の可能性:
C# でカスタムの千区切り記号を使用する
次のように数値をフォーマットする文字列フォーマットが必要です。
Input: 1000 Ouput: 1 000.00
Input: 10000 Output: 10 000.00
Input: 100000 Output: 100 000.00
余分なフォーマットを必要とせずに完璧に機能します
String.Format("{0:# ###.00}", 40000);
output - "40 000.00"
String.Format("{0:# ###.00}", 400000);
output - "400 000.00"
String.Format("{0:# ###.00}", 4000);
output - "4 000.00"
これについてのブログ投稿を確認してください:表示する数値のフォーマット
NumberFormatInfo
クラスを使用してこれを行うことができます。サンプルコードを見てください。
NumberFormatInfo numberFormatInfo = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
numberFormatInfo.NumberGroupSeparator = " ";
int a = 1000;
Console.WriteLine(a.ToString("n", numberFormatInfo)); // 1 000.00
これはうまくいきます
String.Format("{0:### ### ### ###.##}", 10000.00)
結果:
" 10 000.00"
余分なスペースを削除するには、結果をトリミングする必要があります
さあ、友達に行きましょう:
var formatInfo = new NumberFormatInfo();
formatInfo.CurrencyGroupSeparator = " ";
formatInfo.CurrencySymbol = string.Empty;
Console.WriteLine(1000.ToString("C", formatInfo));
Console.WriteLine(10000.ToString("C", formatInfo));
Console.WriteLine(100000.ToString("C", formatInfo));
入力を提供することは、使用できる整数です。
input.ToString("F");
編集:私の悪い、フォーマットにスペースが表示されませんでした。それは10進数値のみだと思っていました
おそらく最良ではない別の簡単な方法は、それを通貨文字列に変換し、前の通貨記号を削除し、「、」を「。」に置き換えることです。
例えば
input.ToString( "C" );
input.Replace( "," , "." );
input.Remove( 0, 1 ); //or the amount of characters in currency symbol if more than one