Деление на ноль, взявшееся непонятно откуда
P.S. Если это важно, компилятор FreePascal под Linux.
Здесь происходит переполнение denominator'а (2 в 32-й степени равно нулю). Для таких вещей longint'а маловато. Если сделать всё что есть extended'ом, то переполнения не будет. Ну и, конечно, при 0.999 о точности можно и не говорить…
А разве на переполнение нет своего кода ошибки?
Цитата: Валериус
А разве на переполнение нет своего кода ошибки?
Есть ошибка 215. Но, если бы всегда проверялись переполнения и выходы за границы массивов, всё бы сильно тормозило. Поэтому по умолчанию эти проверки отключены. Чтобы включить проверку переполнения (не распространяется на inc/dec), надо в начале программы написать {$Q+}, проверку на выход за границы массива - {$R+}. Можно вместе {$R+,Q+}. Только когда много расчётов, тормоза заметны.