次の 10 進数があるとします。1000 ごとにスペースで区切るようにフォーマットする必要があります。
897.11 to 897.11
1897.11 to 1 897.11
12897.11 to 12 897.11
123897.11 to 123 897.11
Decimal.ToString("0 000.00") を試しました。数値が 1897.11 の場合、これはかなりうまく機能しますが。しかし、897.11 の場合は 0 897.11 になります。
次の 10 進数があるとします。1000 ごとにスペースで区切るようにフォーマットする必要があります。
897.11 to 897.11
1897.11 to 1 897.11
12897.11 to 12 897.11
123897.11 to 123 897.11
Decimal.ToString("0 000.00") を試しました。数値が 1897.11 の場合、これはかなりうまく機能しますが。しかし、897.11 の場合は 0 897.11 になります。
カスタム形式の文字列を使用しますが、「0」ではなく「#」を使用してください。0 は必須のトークンです。数字の長さに関係なく存在します。ポンド記号 (#) はオプションのトークンです。実際には数字にのみ使用されます。番号で。
Decimal.ToString("# ###.00")
ノート。これはここに残しますが、@Tim S' の回答の方が優れています。
これを試してみると、最初のセパレーターのみが生成されることがわかります...セパレーターは、ここではコンマとピリオドに対してのみ機能すると思います。回避策として (予想される最大サイズ数まで)、代わりにこれを試してください。
Decimal.ToString("# ### ### ### ###.00")
スウェーデン 桁区切り記号をスペース(" ")、小数点記号をカンマ(,)として使用します。これは次の方法で実現できます。
decimal myNumbber = 5878.476M;
var swedishCulture = new CultureInfo("sv-SE");
swedishCulture.NumberFormat.NumberDecimalSeparator = ",";
swedishCulture.NumberFormat.NumberGroupSeparator = " ";
var s = myNumbber.ToString("#,###.00", swedishCulture);
出力を与える
"5 878,48"
ノルウェー語のロケールでは区切り文字としてスペースが使用されるため、ノルウェー人専用の Web サイトまたはアプリケーションを設計している場合は、次を使用できます。
(123897.11).ToString("n",new CultureInfo("nb-NO"))
その結果、
"123 897,11"
明らかに、ノルウェー市場向けのアプリケーションを作成していない場合、これはばかげた解決策になります。