問題3の解答例
小数部が0.5以上だったら、整数部に1を足す、でもいいのですが、もっと簡単な方法があります。0.5を足して、小数点以下を切り捨てればいいのです。小数部が0.5未満の値に0.5を足しても、整数部は変化しません。小数部が0.5以上の値に0.5を足すと、整数部が1増えます。
0.5は整数表現で128ですから、numberに0.5を足す処理はこうなります。
answer=number+128
整数に直す処理は">>8"ですね?
answer=answer>>8
これで小数点以下が切り捨てられます。
; メインルーチン number=32928 ; 128.625の整数表現 gosub *Round_Num mes "答は"+answer+"です。" stop ; numberの小数点以下第一位を四捨五入し、answerに代入するサブルーチン *Round_Num answer=number+128 answer=answer>>8 return