web-dev-qa-db-ja.com

floatを小数点以下2桁にフォーマットする

私は現在、クライアントWebサイト用の販売モジュールを構築しています。これまでのところ、私は完全に計算するための販売価格を持っています、しかし私が動けなくなったところは小数点第2位に出力をフォーマットすることです。

私は現在結果をリストビューにデータバインドできるように変数でこれを呼び出しています。

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),

誰もが小数点第2位に出力をフォーマットする方法を私に示すことができますか?どうもありがとう!

190
Callum

次のようにフォーマットをToStringメソッドに渡すことができます。

myFloatVariable.ToString("0.00"); //2dp Number

myFloatVariable.ToString("n2"); // 2dp Number

myFloatVariable.ToString("c2"); // 2dp currency

標準の数値フォーマット文字列

429
WraithNath

あなたがする必要がある最初の事は価格のためのdecimalの代りにfloatタイプを使用することです。 floatを使用することは、ほとんどの小数を正確に表すことができないため、絶対に受け入れられません。

それが終わったら、 Decimal.Round() を使って2桁に丸めることができます。

43

String.Format("{0:#,###.##}", value)

C# の文字列書式設定からのより複雑な例:

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

1243.50が渡されると、これは「$ 1,240.00」を出力します。数値が負の場合は同じ形式ですが括弧付きで出力され、数値がゼロの場合は文字列「Zero」が出力されます。

35
alexandrul

私は信じている:

String.Format( "{0:0.00}"、Sale);

やるべきだ。

Link 文字列フォーマットの例を参照してください。C#

22
Bit

すでに述べたように、あなたはフォーマットされた結果を使う必要があるでしょう。これはすべてWrite()WriteLine()Format()、そしてToString()メソッドを通して行われます。

言及されていないのは、指定された小数点以下の桁数を可能にする固定小数点形式です。例に示すように、 'F'を使用し、 'F'に続く数字は出力される小数点以下の桁数です。

Console.WriteLine("{0:F2}", 12);    // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3);  // 12 - ommiting fractions
3
Jackson
string outString= number.ToString("####0.00");
3
danyolgiax