では、上記の自作関数X2を正数の場合は1.5倍、負数の場合はそのままの値を整数型で返すという場合にはどうなるかを考えてみましょう。(例えばX2(3.6)ならば3.6を整数値にした3を1.5倍にして得られた4.5をさらに整数にした4を返すという感じ)
DEF X2 A OUT B
B=FLOOR(A)
IF A>0 THEN B=B*1.5
END
これでBの初期値はAを整数にした値、Aが正数ならばその値を1.5倍になっているので想定しているような動作になりそうですが、X2 3.6 OUT Bとしてみると変数Bの値は4.5になります。
これはFLOORでは整数型ではなく単なる整数値であるためです。
分かりやすく言えばA%=3.6においてA%は3という整数型の値になりますが、A#=FLOOR(3.6)においてA#は3という実数型の値(3.0と同じ値)になっているのと同じ状態なのです。
0そうだね プレイ済み