Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 04:11   #1
San-ch
 
Регистрация: 29.11.2010
Сообщений: 4
По умолчанию Вещественные типы в Паскаль

Почему, когда я ввожу число X=639.99 (X любого вещественного типа) и делаю writeln(x:0:10), мне выводит не 639.9900000000, а 639.9899902344?! И что мне делать в таком случае, если нужно проверить правильность введённой денежной суммы, то есть, чтобы после копеек не было десятичных знаков?

Компилятор Borland Pascal 7.0.

Последний раз редактировалось San-ch; 16.01.2011 в 04:21.
San-ch вне форума Ответить с цитированием
Старый 16.01.2011, 05:35   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

потеря точности, попробуй writeln(x:0:3)
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 16.01.2011, 06:50   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Хм, а какие вещественные типы вы пробуете?
Есть: Single,Real,Double,Extended.
_-Re@l-_ вне форума Ответить с цитированием
Старый 16.01.2011, 07:01   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
правильность введённой денежной суммы, то есть, чтобы после копеек
А Вы вообще понимаете, что Вы пишете в выводе переменной? ЧТо означает (x:0:10) ?!
:10 - означает, вывести 10 (десять) знаков после запятой!
Если у Вас речь идёт о выражении денежной суммы, то, обычно, при выводе достаточно ДВУХ знаков после запятой (то бишь копеек).

ну и полезно, думаю будет почитать статейку:
Неочевидные особенности вещественных чисел. чтобы понимать, откуда у Вас взялись эти самые непонятные цифры после запятой...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.01.2011, 11:48   #5
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

San-ch, попробуйте Write(x:10:2); Думаю поможет
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Вещественные числа SL1CK Общие вопросы .NET 5 15.02.2012 10:56
Вещественные операции Marfeys Помощь студентам 3 22.12.2010 17:58
Паскаль. Типы данных kolashik Помощь студентам 4 19.12.2010 13:52
Вещественные Hanickii Общие вопросы C/C++ 9 17.09.2009 18:14