【发布时间】:2022-01-17 11:51:05
【问题描述】:
我在 linq 中使用 Convert.ToDecimal,有时金额值会以点 (.) 的形式出现,因为用户可能想要写 .50 之类的东西,只要他们输入(使用来自移动设备的数字键盘) 值,代码被执行并抛出exception。
下面的代码我收到string is not correct format exception
var enteredAmountInTenders = TenderListCollection.Sum(x => Convert.ToDecimal(string.IsNullOrEmpty(x.Amount) ? "0" : x.Amount));
我怎样才能忽略上面代码的点而只得到 0?
【问题讨论】:
-
为什么它首先作为字符串到达 TenderListCollection,然后在使用数据时可能多次转换时遇到问题?听起来更合理的是已经在前端这样做了,之后只允许使用实数类型。
-
拉尔夫怎么说。您将希望尽可能在叶子上进行字符串转换(即在输入之后/在显示之前)。