0

バインドされていない vgrid コントロールがあります。1 つのフィールドのバインドされていない式は次のようになります。

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

バインドされていない型は 10 進数、形式の型は数値、形式文字列 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]のすべてのメンバーは整数値です。これが、結果が最も近い整数値に丸められる理由です。

10 進定数値を式に追加すると、式の結果の型が 10 進数に変わります。Criteria Language Syntaxに従って、数値定数の型は特別なリテラルを使用して宣言できます。10 進タイプの場合、リテラルは「m」です。

次の式を試してください。期待どおりに動作するはずです。

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