Мне нужно создать функцию, где мне нужно значение квадрата. Мне сказали, что даже если начальное значение не слишком велико или не слишком мало, квадрат значений может все еще переполняться (возвращает inf
) или underflow (возвращает 0
), и мне нужно выяснить, как это предотвратить.Переполнение числа с плавающей запятой
Моя проблема: я даже не понимаю, какие числа могут вызвать переполнение при квадрате, когда само число не слишком велико.
Я думал, что это может быть не слишком малое число, например. 1/3
с повторением десятичных чисел, но MATLAB просто превращает это в 0.3333
.
Может ли кто-нибудь дать мне пример такого числа или объяснить, какие цифры могут вызвать это?
'nsingle = realmax ('double')' возвращает наибольшее положительное число с плавающей запятой. – obchardon