-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.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(在表格底部)

于 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 回答
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 回答