| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Ошибка в расчётах |
| Автор: Riki2 10.12.2009, 20:25 |
| Помогите разобраться в чём ошибка программы. Необходимо произвести расчёты на основе вводимых данных Если вводить через переменные sum:=(razmer*stavka*srok)/(day*100); и через обычный расчёт summ:=(50000*14*91)/(365*100); Результаты выходят разные. Пробовал по разному написать формулу,в итоге ничего не получилось. Обращаюсь за помощью к вам. Очень прошу помочь. Мне к завтрашнему надо доделать этот курсовой издать. |
| Автор: ФедосеевПавел 10.12.2009, 23:45 | ||||
| В TurboPascal размер integer - 2 байта, т.е. диапазон значений примерно от (-32000) до (+32000). Попробуй в программе ввести i=50000 и посмотри на результат.
При использовании переменных вычисления происходят в типе integer и происходит переполнение уже после присвоения переменной значения 50000, не говоря уже о последующем умножении. А когда константы подставлены напрямую, то происходит неявное преобразование результата к типу LongInt. Замени тип переменных на Real (razmer, stavka). И замени
|