-1

どうすれば入手することができますか??

私の答えが1.1なら

出力は 1.1 (実際) になります。

私のコード:-

decimal totalUnusedAmount = 0;
decimal.TryParse(txtTotalUnusedAmount.Text, out totalUnusedAmount);

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString();

しかし、上記のコードから、答えを得ています1.10。コードをデバッグすると、デバッグ時に 1.1 が返されます。

4

3 に答える 3

0

私はこれを試しました....その作業

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString("0.##");

http://www.csharp-examples.net/string-format-double/

于 2012-12-10T07:42:40.750 に答える
0

数値を表示する形式を指定するだけです。

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString("0.0");

ドキュメント: http://msdn.microsoft.com/en-us/library/system.string.format.aspx

丸めエラーが発生した場合は、 に 10 進リテラルを使用する必要があります100。これを試して:

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100M).ToString("0.0");

数値の末尾の は、小数点以下のない数値のデフォルトのリテラル型である ではMなく、10 進数として解釈する必要があることをコンパイラに伝えます。Int32

ドキュメント: http://msdn.microsoft.com/en-us/library/364x0z75(v=vs.110).aspx

デバッガーでの表示方法を正確な回答として表示するには、「ラウンドトリップ」オプションが必要です。

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100M).ToString("R");

ドキュメント: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx (表の下部)

于 2012-12-07T08:53:44.930 に答える
0

これを試して

lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString("G29");`

数字が長すぎる場合、これは e の累乗で表示されることに注意してください。

作品を編集

decimal tmp = 1.2000000000000M;
Response.Write(tmp.ToString("G29"));
于 2012-12-07T09:00:15.757 に答える