2012-12-07 15 views
-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。

+1

顯示'1.10'取代'1.1'不是「四捨五入」問題,是嗎? –

回答

0

你只需要到指定的格式顯示在數:

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

文檔:http://msdn.microsoft.com/en-us/library/system.string.format.aspx

如果你遇到一個舍入誤差,則需要使用十進制文本爲您100。試試這個:

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

上的號碼末尾的M告訴編譯器應該被解釋爲十進制不是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(在底部表)

+0

但如果我的答案是1.32那麼輸出應該是1.32而不是1.1 – Shri

+0

好吧,看看我的答案編輯幫助=] – Sean

+0

這個工程,但我沒有走完一輪...我只有實際答案 – Shri

0

試試這個

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

只是沒有如果數字太長,這顯示e的權力。

編輯 對我的作品

decimal tmp = 1.2000000000000M; 
Response.Write(tmp.ToString("G29")); 
+0

零答案即將來臨:( – Shri

+0

其他可能是錯誤的。 –