log(1000,10) の計算結果は 3 未満なのに、 print 命令が勝手に有効数字 6 桁に丸めてるだけですからねえ。 floor 使うときは常に留意しとかないと予想外の結果になります。 連続秒数から時:分:秒に変換する時とか、よくハマりますね。 ? format$("%.18f", log(1000,10)) 2.9999(略)99600 がより正確な値です。 自分が欲しい精度で丸めるのがいいんじゃないかな?? 例えば丸め幅 = 0.001 で丸めるなら 1000 倍して四捨五入して 1000 で割ればいいでしょう。 ? format$("%.18f", floor(log(1000,10)*1000+0.5)/1000) 3.0000(略)0000