文字列形式を使用して、小数点2桁までまたは単純な整数を表示する 質問する

文字列形式を使用して、小数点2桁までまたは単純な整数を表示する 質問する

表示する価格フィールドがあり、その価格は 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");

おすすめ記事