0

我有一个未绑定的 vgrid 控件。一个字段的未绑定表达式是这样的:

Iif([NETSAL]=0, 0, [GP] / [NETSAL] * 100 )

未绑定类型为十进制,格式类型为数字,格式字符串n1。

问题是,我没有得到正确的格式化值。F.e. 如果 gp=200 和 netsal=1500,我应该得到:13,3,但我得到 0,0。我检查了计算值,这也是 0,0。

但是如果 gp=2500 ant netsal=1000,那么这个值就是 200,看起来,这个值是四舍五入的。

但为什么?

谢谢。

4

1 回答 1

1

表达式结果类型取决于表达式成员类型。在您的情况下,表达式[GP] / [NETSAL]的所有成员都是整数值。这就是为什么将结果四舍五入到最接近的整数值的原因。

向表达式添加十进制常量值会将表达式结果的类型更改为十进制。根据Criteria Language Syntax,可以使用特殊文字声明数字常量的类型。对于十进制类型,字面量为“m”。

尝试以下表达式,它应该可以按预期工作:

Iif([NETSAL]=0, 0, 1m * [GP] / [NETSAL] * 100 )
于 2014-09-21T09:48:29.553 回答