除非我做条件测试,否则为什么我得到 0 值

Why get I 0 value unless I did conditional test

我想过滤一个 MT_V 和 MT_E 应该与 zeo 不同的实体。

请注意,这些变量被声明为 bigdecimal 。

所以命令是:

S0 = FILTER E1ECP BY ((NO_PCI != '0') AND (MT_V != 0) AND (MT_E != 0));

其中 NO_PCI 是另一个变量。

但我的数据中有一行 MT_V ==0.00 和 MT_E == 0.00

PR,20190711-135040,2018,12,34,001,01,DC03520118,93873104,EUR,L,5A00,3A001,013400,806457,,,0.00,0.00,,2037,CAI,1600,,C1, 

请问如何解释?

使用 (int) 对 MT_V、MT_E 进行转换并将其与 0 进行比较。

S0 = FILTER E1ECP BY ((NO_PCI != '0') AND ((int)(MT_V) != 0) AND ((int)(MT_E) != 0));