1

我似乎无法让我的成本值显示小数位。当我调试 Session("TotalProductCost") 的值是 100D 时,下面值“100.00”的代码只给了我“100”?

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
4

1 回答 1

3

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

TotalAmount = Res.ToString("F2")

上面告诉 ToString “我希望将结果固定到小数点后两位”。如果你把值 1000 交给它,你得到的字符串将是“1000.00”。

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

TotalAmount = Res.ToString("N2")

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

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

于 2013-07-24T14:28:44.353 回答