5

指定された値 = 2 または 4.00
以下のステートメントの出力

value = Convert.ToDecimal(value).ToString("C2");

値 = $2.00、または $4.00

value = 1000 の場合、出力は$1,000.00but I require になります$1000.00

「$」と値の文字列連結は好みません。

4

4 に答える 4

9
var stringValue = Convert.ToDecimal(value).ToString("$0.00");

以下の@Jamesが指摘したように、これは通貨をフォーマットにハードコーディングします。形式C2を使用すると、システムの通貨形式が使用されます。これはシステムに合わせて変更することができ (例: Windows 7 - スタート - コントロール パネル - 表示言語の変更 - 追加設定 - 通貨 - 数字のグループ化)、C2その特定のシステムで実行しているときにカンマなしで通貨値を表示するフォーマットを許可します。

編集

現在の文化を使用するための@Jamesのすべての功績。彼の答えに対する私の唯一の変更は、をNumberFormat削除する前に現在のカルチャ番号形式のすべてのプロパティを取得するために、現在のクローンを作成することCurrencyGroupSeparatorです。

var formatInfo = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
formatInfo.CurrencyGroupSeparator = string.Empty;

var stringValue = Convert.ToDecimal(value).ToString("C", formatInfo);
于 2012-06-29T12:23:25.280 に答える
4

クラスを使用して、NumberFormat必要なフォーマットのタイプを指定する必要があります。たとえば、パラメータToStringを取ります。IFormatProvider

var formatInfo = (System.Globalization.NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
formatInfo.CurrencyGroupSeparator = ""; // remove the group separator
Console.WriteLine(2.ToString("C", formatInfo));
Console.WriteLine(4.ToString("C", formatInfo));
Console.WriteLine(1000.ToString("C", formatInfo));

これにより、使用しているカルチャと一致する番号のフォーマットが維持されます。

于 2012-06-29T12:34:55.320 に答える
2
public static class MyExtensions
{
    public static string GetMoney(this decimal value, bool displayCurrency = false, bool displayPeriods = true)
    {
        string ret = string.Format("{0:C}", value).Substring(displayCurrency ? 0 : 1);
        if (!displayPeriods)
        {
            ret = ret.Replace(",", string.Empty);
        }
        return ret;
    }
}

この拡張メソッドを使用するには:

decimal test = 40023.2345M;
string myValue = test.GetMoney(displayCurrency:true, displayPeriods:false);`
于 2012-06-29T12:52:32.230 に答える
0

整数値を $0.00 形式に変換する

整数値 = 1000; string abc = Convert.ToDecimal(Value).ToString("$0.00"); 出力は $1000.00 になります

于 2013-06-13T05:37:54.643 に答える