请参阅以下代码
totLen = (r.Field<int>("Quantity") <= 0 ? 1 : r.Field<int>("Quantity")) *
((r.Field<decimal>("Breath") <= 0 ? 1 : r.Field<decimal>("Breath")) *
(r.Field<decimal>("Length") <= 0 ? 1 : r.Field<decimal>("Length")) *
(r.Field<decimal>("Height") <= 0 ? r.Field<decimal>("Height") : r.Field<decimal>("Height")))
在这段代码中,我认为如果 r.Field(COLUMN NAME)的任何值都为0,那么使用替换为仅用于乘法的?并且: 条件运算符,但它给出了错误的输出并返回ZERO(0)...
任何人都可以告诉我为什么会这样吗?
答案 0 :(得分:1)
如果“高度”字段为0
,您仍然在乘法中使用它。
更改
r.Field<decimal>("Height") <= 0 ? r.Field<decimal>("Height") : r.Field<decimal>("Height")
到
r.Field<decimal>("Height") <= 0 ? 1 : r.Field<decimal>("Height")
答案 1 :(得分:1)
totLen = (r.Field<int>("Quantity") <= 0 ? 1 : r.Field<int>("Quantity")) *
((r.Field<decimal>("Breath") <= 0 ? 1 : r.Field<decimal>("Breath")) *
(r.Field<decimal>("Length") <= 0 ? 1 : r.Field<decimal>("Length")) *
(r.Field<decimal>("Height") <= 0 ? 1 : r.Field<decimal>("Height")))
试试这个