Итак, сразу к делу. Я использую AppleSoft BASIC, но есть проблемы с функцией SQR. Кажется, что он выдает целые числа при работе с меньшими идеальными квадратами, но плавает при работе с большими. Например:
У меня есть этот фрагмент кода, который проверяет, является ли переменная целым числом, и печатает «ОК», если это так:
] IF INT(X) = X THEN PRINT "OK"
Когда X
определяется как
] X = SQR(16)
] PRINT X
4
функция печатает OK
.
Однако, когда X
определяется как
] X = SQR(7744)
] PRINT X
88
функция ничего не печатает.
(Обратите внимание, что ]
является подсказкой и не включена в код.)
Абсурд, не так ли? Мне удавалось воспроизвести его каждый раз на моем личном Apple //e, так что вы сможете воспроизвести его и на своем. (Это 1986 год! У каждого должен быть такой.)
Может ли SQR давать последовательный результат? Есть ли какая-то внутренняя разница между SQR (16) и SQR (7744)?
P.S. Я был пользователем S.O. уже больше года, но почему-то мой аккаунт исчез. Так что нет, я не просто "начинаю".