プチコン3号では?LOG(1000,10)を実行すると3と表示されますが、内部では2進数で010000000000001111111111111111111111111111111111111111111111111111(10進数では2.9999999999999996)となってます。
したがって、FLOOR(LOG(1000,10))の値は2になります。
ちなみにSTR$で文字列化したあとにVALで数値に戻すと3になるのはSTR$にする段階で値が丸められるためです。(有効桁数が約16桁から6桁へと減る段階で四捨五入されるため)
桁数を求めるプログラムはシンプルでありながら様々な例外処理が必要になりなかなか奥が深いので第2回プチコン3号コードゴルフの題材に使わせてもらうことにします。
そこで私が考えた桁数を求める方法も書く予定です。
0そうだね プレイ済み