| お初にお目にかかります。 SRCユーザーの1人「GAMEMASTER」と申します。
> 限定的な内容ですみません。 > > Set tmp2 190 > > For tmp1 = 1 To 25 > Set tmp2 (tmp2 + 2 * 20 / 25) > Next > > この様な式でtmp2を出力し、直後にInt(tmp2)を参照した場合、 > 何故か229が返されてしまいます。 > 25で除算したものを25回加算している訳ですから、"230"が返される筈なのですが、 > 一体Intは何を切り捨てているのでしょう・・・? > ちなみにIntを使わずに参照すると"229."が返されます。何故小数点が・・・ > > 私の勘違いでしょうか? それともバグでしょうか。
(tmp2 - 230)を参照したところ、-0.00000000000014210854715202という値が得られました。即ち、厳密には230より小さい値となっています。 これはForコマンドのループ中に加算している値が整数でない(2 * 20 / 25 = 1.6)場合に発生する現象で、整数が加算され続けた場合はこの現象は発生しません。 バグか仕様かは不明です。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
|