Hanzo さん>1-0.999999999=0.000000001 は、小さすぎて扱えず、0とみなされるので、1-0.999999999=0、つまり 1=0.999999999 という奇妙なことになっているわけです。 有効桁数が違います。 この場合は print 命令が勝手に 0.99..(9桁) を丸めて 1 と表示しているだけです。 正しく表示するためには format$ を使います。 ? format$("%.20f", 0.999999999) 0.9999999990000003000 プチコンで実数型といわれている変数は、一般には「倍精度浮動小数点数」と呼ばれていて、有効数字は約 16 桁あります。 ので 0.99..(17桁) であれば丸められて 1 になります。