我有一个未绑定的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,看起来该值是舍入的。
但为什么?
感谢。
答案 0 :(得分:1)
表达式结果类型取决于表达式成员类型。在您的情况下,表达式 [GP] / [NETSAL] 的所有成员都是整数值。这就是为什么结果四舍五入到最接近的整数值。
向表达式添加十进制常量值会将表达式结果的类型更改为十进制。根据{{3}},可以使用特殊文字声明数字常量的类型。对于十进制类型,文字是' m'。
尝试以下表达式,它应该按预期工作:
Iif([NETSAL]=0, 0, 1m * [GP] / [NETSAL] * 100 )