1. ホーム
  2. c#

[解決済み】文字列フォーマットで小数点以下2桁や単純な整数を表示する

2022-05-05 01:26:11

質問

私は、表示する価格フィールドを持っており、時には100または100.99または100.9のいずれかになります。私が欲しいのは、小数点以下がその価格に入力されている場合にのみ小数点以下2桁で価格を表示することです。例えば、その100は、それが唯一の100ではなく100を表示する必要があり、価格が100.2であればそれは100を表示しなければなりません100.22は同じようにすべき。 私はグーグル、いくつかの例に出くわしたが、彼らは私が望んでいたものと正確に一致しませんでした。

// 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"

解決方法は?

不格好な方法としては

var my = DoFormat(123.0);

DoFormat のようなものです。

public static string DoFormat( double myNumber )
{
    var s = string.Format("{0:0.00}", myNumber);

    if ( s.EndsWith("00") )
    {
        return ((int)myNumber).ToString();
    }
    else
    {
        return s;
    }
}

エレガントではありませんが、いくつかのプロジェクトで同じような状況に陥ったとき、私は役に立ちました。