我怎么能搞?
如果我的答案是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。
答案 0 :(得分: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(位于表格底部)
答案 1 :(得分:0)
试试这个
lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString("G29");`
请注意,如果数字太长,则以e的幂显示。
修改强> 适合我
decimal tmp = 1.2000000000000M;
Response.Write(tmp.ToString("G29"));
答案 2 :(得分:0)
我试过了......它的工作
lblAmountDue.Text = ((totalUnusedAmount * Convert.ToDecimal(ViewState["FundedAmount"])) / 100).ToString("0.##");