・ 計算誤差について
小数点以下を切り捨てるには
(fix real_a)
コマンド: (fix (- 17.9 5.9))
11
なんと 17.9-5.9=12 にならないらしいのです
コンピューター内部では循環小数になってます
コマンド: (rtos (- 17.9 5.9) 2 100)
"11.99999999999999"
これを切り捨てるから 12 でなくて 11
となってしまうわけですね
あまり、お目にかからないかもしれませんが、計算結果があわないときは疑ってみましょう
ちなみに、簡単に誤差を丸めるには
(fix (atof (rtos real_a)))
とかすると良いでしょう
システム変数 LUPREC で丸めて整数部を返してくれます
参考文献:「おぉとりすぷの広場」 記事番号<17567><17592>