表示する価格フィールドがあり、その価格は 100、100.99、100.9 のいずれかになることがあります。私が望むのは、その価格に小数点が入力されている場合にのみ、価格を小数点以下 2 桁で表示することです。たとえば、価格が 100 の場合、100.00 ではなく 100 のみが表示され、価格が 100.2 の場合は 100.20 と表示され、100.22 の場合も同様に表示されます。Google で検索していくつかの例を見つけましたが、私が望んでいるものとは正確に一致しませんでした。
// just two decimal places
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
ベストアンサー1
この質問を再度アクティブにして申し訳ありませんが、ここでは適切な回答が見つかりませんでした。
0
数字の書式設定では、必須の場所として、また#
オプションの場所として使用できます。
それで:
// just two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
0
と組み合わせることもできます#
。
String.Format("{0:0.0#}", 123.4567) // "123.46"
String.Format("{0:0.0#}", 123.4) // "123.4"
String.Format("{0:0.0#}", 123.0) // "123.0"
このフォーマット方法には常に が使用されますCurrentCulture
。一部のカルチャー.
では に変更されます,
。
元の質問への回答:
最も簡単な解決策は@Andrew(ここ)。なので、私は個人的には次のようなものを使います:
var number = 123.46;
number.ToString(number % 1 == 0 ? "0" : "0.00");