Показать сообщение отдельно
Старый 20.02.2010, 11:11   #18 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Не согласен ни с одним пунктом.
Цитата:
Сообщение от Long Cat Посмотреть сообщение
Как я понял, там требуется сосчитать 6 знаков после запятой
Где Вы это взяли? Еще раз пересмотрел всю ветку - не нашел. А у MrStep'a и Linka и вовсе поставлен формат с двумя знаками.
Цитата:
а у real точность 5 знаков. Запас по арифметической точности должен быть не менее 5 знаков.
Вообще, при математических расчетах, применять real нужно с осторожностью - точность низкая.
Ну очень странно. Формат Real имеет следующие параметры:
Диапазон: -2.9е-39..1.7е38
Количество значащих цифр: 11-12
Количество байтов: 6
И это в очень старой версии Турбо-Паскаля.
И куда тут большая точность?
Цитата:
вот тут будут проблемы:


0.5* integer или integer*integer(integer*0.125 - это что? double, extendent или real?
умножение числа с плавающей запятой на целое может создать огромные проблемы новичкам при отладке.
Да ни малейших проблем тут нет и не будет. Во-первых, я без проверки (трансляции и запуска) сюда, как правило, ничего не выкладываю. Во-вторых, проблем при умножении числа с плавающей запятой на целое не возникает в принципе. Они могут возникнуть при обратной последовательности, каковой в моей программе, как видите, нет. Я избегаю конструкций типа b=i*a, где а и b - вещественные, i - целое. В крайнем случае ставлю доп. множитель: b=1.0*i*a. А что до того, какой формат - это зависит от того, что в данной реализации принято по умолчанию. Обычно, если я не ошибаюсь, Double. Но IMHO в данном случае и Real сойдет.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070