Помощь - Поиск - Пользователи - Календарь
Полная версия: Отключение/подключение директив. Помогите, прошу..
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Общие вопросы разработки программ
brook
Здравствуйте! Столкнулся с проблемой, которую не могу решить. Мне необходимо сделать так, чтобы Pascal ABC не переводил нецелые числа в числа с плавающей точкой (запятой), т.е. надо, чтобы он всегда работал с, например, такими числами: 0.000000000000078900000006, а не переводил их в вид 7.8900000006E-14. Подскажите, как принудить работать Pascal именно с такими "неудобными" для него числами.
Пожалуйста, откликнитесь! Очень срочно нужна помощь.
IUnknown
В каком виде он будет работать - это его проблема, главное, чтоб он показывал значения в НЕэкспоненциальном виде. Для этого есть формат вывода:

var x: real;
begin
x := 0.000000000000078900000006;
write(x:30 :28); // Всего 30 знаков, после запятой 28
end.


Online-компилятор PascalABC по крайней мере выводит "0.0000000000000789000000060000", не знаю как автономная версия, я ее не держу.
brook
Спасибо большое, но в моем случае надо сделать так, чтобы результат был без E, а не ответ
IUnknown
Результат (я о представлении вещественных чисел в PascalABC, они там только Real, других типов нет) всегда одинаковый, это обычное 64-битное число (15-16 значащих цифр и значения по модулю не превосходящие 1.7*10308). Единственное, на что ты можешь хоть как-то влиять - это на способ его отображения. Не хочешь - не надо, ищи другой компилятор (вернее, интерпретатор)

Кстати, вышеприведенный код на PascalABC (старом, не .NET-овом) ведет себя не так, он просто выводит 0. Оно и понятно, максимум 16 значащих цифр, точнее чем 0.0000000000000789 вывести не удастся.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.