无法转换为成本倍数的两倍

时间:2013-07-24 14:21:00

标签: asp.net vb.net

我似乎无法获得显示小数位的成本值。值“100.00”下面的代码只给我“100”当我调试Session的值(“总产品成本”)是100 D?

Session("TotalProductCost") = Convert.ToDecimal(Cost1) + Convert.ToDecimal(Cost2) + Convert.ToDecimal(Cost3) + Convert.ToDecimal(Cost4) + Convert.ToDecimal(Cost5)


Dim TotalProductAmt As Decimal
Decimal.TryParse(Session("TotalProductCost"), TotalProductAmt)
Dim Res As Decimal =  TotalProductAmt
TotalAmount = TotalProductAmt.ToString()
TotalAmount = Res.ToString

1 个答案:

答案 0 :(得分:3)

如果希望ToString的结果总是包含两个小数位,则需要告诉ToString。您可以传递一个字符串参数,告诉ToString您期望的结果类型,如下所示:

TotalAmount = Res.ToString("F2")

上面告诉ToString“我希望结果固定到两个小数位”。如果您将值设为1000,则您获得的字符串将为“1000.00”。

或者,如果您还希望对数字进行分组,使得1000结果为“1,000.00”(或某些其他分组系统,具体取决于您所在的国家/地区),则可以将“N2”作为参数传递给的ToString:

TotalAmount = Res.ToString("N2")

有关此格式和其他字符串格式的详细信息,您可以传递给ToString,请参阅MSDN documentation

至于为什么Visual Studio会向您显示“100D”,D表示您正在查看十进制值(而不是整数或其他)。