|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.01.2011, 04:11 | #1 |
Регистрация: 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. |
16.01.2011, 05:35 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
потеря точности, попробуй writeln(x:0:3)
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
16.01.2011, 06:50 | #3 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Хм, а какие вещественные типы вы пробуете?
Есть: Single,Real,Double,Extended. |
16.01.2011, 07:01 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
:10 - означает, вывести 10 (десять) знаков после запятой! Если у Вас речь идёт о выражении денежной суммы, то, обычно, при выводе достаточно ДВУХ знаков после запятой (то бишь копеек). ну и полезно, думаю будет почитать статейку: Неочевидные особенности вещественных чисел. чтобы понимать, откуда у Вас взялись эти самые непонятные цифры после запятой... |
|
16.01.2011, 11:48 | #5 |
Форумчанин
Регистрация: 13.10.2010
Сообщений: 109
|
San-ch, попробуйте Write(x:10:2); Думаю поможет
Учусь учиться.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |