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 ? r.Field<decimal>("Height") : r.Field<decimal>("Height")))

在这段代码中,我认为如果r.Field(COLUMN NAME)的任何值为零,那么它应该被 1 替换,仅用于使用? 和: 条件运算符,但它给了我错误的输出并返回零(0)......
有人可以建议我为什么会发生这种情况吗?

4

2 回答 2

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")
于 2013-01-24T10:59:19.090 回答
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")))

尝试这个

于 2013-01-24T11:01:34.037 回答