Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
04.09.2024
Размер:
2.74 Кб
Скачать
ДЛЯ ЛАБЫ 5 (Экспонента):

Ребят, терпения вам в защите, расскажете ему про его любимую "коробочку" из байтов для чисел с плавающей запятой двойной точности Double (знак, мантисса и порядок - картинку вот отсюда https://ru.wikipedia.org/wiki/Число_двойной_точности ему покажете).
В целом статьи с вики (и не только) мб помогут, в самой лабе в конце есть сравнение точности Double с Decimal. В общем, удачи, мы сдали и вы сдадите (подсказывайте одногруппникам что ему говорить, если первые сдаёте и его устраивает).






P.s. Как я объяснял одногруппникам:

"Крч у тебя мантисса числа double хранит 52 бита - то есть 52 "коробочки" ((c) Волков), которые хранят 0 или 1.
Когда у тебя во всех 52 "коробочках" единицы - это 2^52 - то есть это максимальное (десятичное) число, которое может хранить мантисса (на калькуляторе ему покажешь)

У тебя при х=21 число (не считаешь запятую) получается БОЛЬШЕ того максимального числа (если считать 15 знаков, т.к. ты гарантируешь точность eps = 0.000001 до 6 знака после запятой)
следовательно точности при 21 уже не хватит и он просто выведет 0 там.

А при х = 20 у тебя если считать до 6 знака после запятой - точности хватает, число получается меньше максимального для мантиссы. Следовательно ПРЕДПОСЛЕДНИЙ ноль там (ты обещаешь 6 знаков, выводишь 7, но на 7-ой тебе плевать, он для проверки) действительно равен нулю.

Потом ты делаешь копию проги, в которой всё меняешь на Decimal (который может это подсчитать) и показываешь ему, что на Х=20 там в конце "01", который округляется до "0" у тебя в Double - следовательно 20 он считает правильно."