我在创建的购物车中有此代码,但收到标题中显示的错误。错误显示在此行:
4 回答
只需调用ToString
以获取十进制值的字符串表示形式:
order.Total = orderTotal.ToString("G");
虽然我不明白你为什么要将成员存储Total
为 astring
而不是 a decimal
too。
听起来这个Order
类有Total
一个字符串属性。检查类定义Order
。如果是这种情况,我建议将Total
数据类型更改为小数,因为将货币值表示为字符串没有意义。decimal
更有意义。
您的 Order 课程是什么样的?属性的类型是什么Total
?看起来它是一个字符串类型。在这里,您尝试将十进制值设置为字符串类型,也就是说,您遇到了该错误。因此,您需要先将十进制转换为字符串,然后再将其分配给字符串变量。使用toString()
方法。
order.Total = orderTotal.ToString();
正如 Tudor 已经提到的,最好使用 Total 作为小数属性,因为它可以很容易地进行所有数学运算。每次您想要进行算术运算并将其再次转换回字符串时,您都不需要将其转换为十进制格式
将类型更改Order.Total
为十进制。数据类型 Decimal 不会自动转换为字符串(反之亦然),这就是您收到错误的原因,此外,任何后续调用都Order.Total
将与字符串相关,因此您将无法使用像Order.Total +=
另请注意,任何绑定便利,如 DataTable 的“格式”属性都将被忽略,因为底层架构不会调用 string.ToString(format)。