| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > умножение переменной на число в Pascal |
| Автор: Plavozont 6.12.2010, 14:43 | ||
В программе возникает ошибка:
Никто не знает почему, и как это решить ? |
| Автор: SPrograMMer 6.12.2010, 15:40 |
| тип integer паскаля 2 байтный, и хранит числа из диапазона -32768 до +32767. У вас получается число более чем 32767. Попробуйте тип Int64, например Добавлено через 4 минуты хотя, результат присваивается переменной типа real, но видимо все же компилятор пытается получить значение "в формате" integer. Можно еще попробовать вместо real использовать типы побольше: Double или Extended |
| Автор: remax 6.12.2010, 16:08 | ||
и оставить типы данных как были.... |
| Автор: Plavozont 6.12.2010, 16:39 |
| Спасибо ! Longint помог ! Всё же не понятно чем 6 и 8 строка отличаются. |
| Автор: CROTishka 6.12.2010, 17:40 |
| отличается тем, что компилятор оптимизирует 10000*10 в константу. |
| Автор: cat512 7.12.2010, 00:31 | ||
какая среда используется - free pascal? Специально проверил под 6 update pack 2, Всё отлично работает как с оптимизацией так и без оной. |
| Автор: northener 7.12.2010, 02:35 |
Скорее TurboPascal. Тип "результата выражения", т.е. вычисления его правой части компилятор берет от первой слева переменной в правой части. А она Integer. В 6-й строке есть только константы. В ней тип выражения компилятор берёт из левой части выражения. |