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に置き換える必要があると考えていました。および: 条件演算子ですが、間違った出力が返され、ZERO(0)が返されます...
なぜこれが発生するのかを誰かに教えてもらえますか?

4

2 に答える 2

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 に答える
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 に答える