たとえば、いくつかの小数があります。
decimal[] arr = { 1, (decimal)1.1, (decimal)1.00 };
これらはロシア ルーブルでの価格を表しています。
var overrideCulture = new System.Globalization.CultureInfo("ru-RU");
私が使用するとき:
foreach (var d in arr)
{
string s = d.ToString("c", overrideCulture);
Console.WriteLine(s);
}
私は得る
1,00p.
1,10p.
1,00p.
結果として、しかし私が必要とするのは、分数がゼロの場合、それを表示したくないが、通貨形式を維持する必要があるということです。この例では、取得したい:
1p.
1,10p.
1p.
次のような分数を簡単に取得できます。
foreach (var d in arr)
{
string s = d.ToString("#.##", overrideCulture);
Console.WriteLine(s);
}
ただし、通貨形式は失われます。
string s = d.ToString("#.##c", overrideCulture);
また、動作しません1c
。1,1c
私が必要とするようなフォーマットを取得するためのトリッキーではない方法はありますか?