44

次の 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 になります。

4

6 に答える 6

9

カスタム形式の文字列を使用しますが、「0」ではなく「#」を使用してください。0 は必須のトークンです。数字の長さに関係なく存在します。ポンド記号 (#) はオプションのトークンです。実際には数字にのみ使用されます。番号で。

  Decimal.ToString("# ###.00")  

ノート。これはここに残しますが、@Tim S' の回答の方が優れています。

これを試してみると、最初のセパレーターのみが生成されることがわかります...セパレーターは、ここではコンマとピリオドに対してのみ機能すると思います。回避策として (予想される最大サイズ数まで)、代わりにこれを試してください。

  Decimal.ToString("# ### ### ### ###.00")  
于 2013-07-08T13:27:56.193 に答える
4

スウェーデン 桁区切り記号をスペース(" ")、小数点記号をカンマ(,)として使用します。これは次の方法で実現できます。

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"
于 2020-01-21T05:42:20.023 に答える
3

ノルウェー語のロケールでは区切り文字としてスペースが使用されるため、ノルウェー人専用の Web サイトまたはアプリケーションを設計している場合は、次を使用できます。

(123897.11).ToString("n",new CultureInfo("nb-NO"))

その結果、

"123 897,11"

明らかに、ノルウェー市場向けのアプリケーションを作成していない場合、これはばかげた解決策になります。

于 2016-09-20T15:55:14.120 に答える