|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.11.2011, 10:40 | #1 |
Новичок
Джуниор
Регистрация: 17.11.2011
Сообщений: 2
|
Непонятное поведение функции sscanf(,%lf,)
Добрый день всем!
Столкнулся с такой проблемой: читаю строку из трёх вещественных чисел TEXT 18.4, 5.08, 3.015 double value[3]; sscanf(str, "TEXT %lf, %lf, %lf", &value[0], &value[1], &value[2]); потом смотрю значение value[0], а там вместо 18.4 - 18.399999999999 Подскажите, пожалуйста, почему это происходит, и можно ли с этим бороться? |
17.11.2011, 15:50 | #2 |
На форуме меня нет
Пользователь
Регистрация: 03.08.2011
Сообщений: 56
|
прибавляй к числу 1; P.S. это почти шутка Но у меня так работает
Делаю бд, программы,
icq 640743615 дамы! |
17.11.2011, 18:37 | #3 |
C/C++ advanced
Пользователь
Регистрация: 17.11.2011
Сообщений: 17
|
VIKT0R1, обратите внимание на то какой у Вас спецификатор чтения %lf - он предполагает double - в машинном представлении double имеет 12-ть ноликов после запятой, поэтому 18.4 эквивалентно 18.399999999999 - т.е погрешность 10 в минус 12. В программе ваше 18.399999999999 считаться будет как 18.4(сомневаюсь чтобы вы заметили погрешность в пико-долях)Вобщем всё будет верно работать, а если хотите хорошо пропечатать число сделайте так
printf("%.2f",value[0]); И посмотрите результат PS:А мы с вами по-моему уже встречались, правда не здесь
За "хлеб и воду" не работаю
|
18.11.2011, 08:23 | #4 | |
Новичок
Джуниор
Регистрация: 17.11.2011
Сообщений: 2
|
Цитата:
P.S. А вообще-то, почему у функции scanf возникает эта погрешность? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Непонятное поведение скрипта | AlexDn | JavaScript, Ajax | 7 | 06.08.2010 06:16 |
непонятное поведение cout | jammer77 | Общие вопросы C/C++ | 22 | 02.07.2010 11:56 |
Непонятное поведение типа | J-Max | Общие вопросы Delphi | 12 | 10.02.2010 17:15 |
Непонятное поведение алгоритма | master_root | Общие вопросы Delphi | 3 | 11.06.2008 14:32 |