小数点がある場合にのみ小数点以下2桁の通貨を表示する文字列形式の式(.net)

.net formatting string
小数点がある場合にのみ小数点以下2桁の通貨を表示する文字列形式の式(.net)

Silverlight 4 / C#:スレッドカルチャの通貨(小数点以下2桁)でフォーマットされた数値を示すラベルがあります。

25は$ 25.00と表示され、25.01は$ 25.01と表示されます

これには「StringFormat = C2」を使用します。 私の問題は… 小数点以下がある場合は、小数点以下2桁のみを表示します。 e.g.

25は25ドル、25.01は25.01ドルと表示されます

通常の番号では#-を使用します。 #。そして、小数点が存在しない場合は小数点を抑制しますが、通貨記号は表示されません。 C2。は機能しません。

何か提案がありますか? (通貨記号のハードコーディングはオプションではありません)

  3  1


ベストアンサー

小数に小数要素が含まれているかどうかを確認し、結果に応じて異なる表現を返します。

public string GetFormatStringForDecimal(myDec){
    return (Decimal.Ceiling(myDec) > myDec) ? "C2" : "C0";
}

この関数は、質問で指定されている10進数のフォーマット文字列を返します。

4


decimal value = 1603.42m;
var temp = string.Empty;
if (Decimal.Floor(value) < value) //means value is with decimal part
    temp = value.ToString("C2", new CultureInfo("en-US"));
else
    temp = value.ToString("C0", new CultureInfo("en-US"));
return temp;

FBTMoVGogot

1


タイトルとURLをコピーしました