【发布时间】:2013-01-24 10:57:09
【问题描述】:
看下面的代码
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 仅用于乘法 使用?和 : 条件 运算符,但它给了我错误的输出并返回 ZERO(0)...
谁能告诉我为什么会这样?
【问题讨论】:
-
你能通过检查每个值是什么以及你得到什么来调试吗?
-
处理零的好主意
-
你想用这段代码实现什么?我不明白为什么如果所有字段都为零,
totLen应该是非零 -
它肯定只有一个值会为零....
标签: c# operators conditional