Форум программистов, компьютерный форум CyberForum.ru

Неверная запись в переменную - C++

Восстановить пароль Регистрация
 
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
05.11.2013, 19:33     Неверная запись в переменную #1
Вечер добрый, форумчане. Столкнулся с довольно странной для меня проблемой.
C++
1
2
double x1;
cin>>x1;
Я ввожу значение 0.2, но в переменную записываетя 0.20000000000000001.
Всё бы ничего, но при сравнении этого числа уже неверный результат.
Да и просто интересно стало почему же так.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 19:33     Неверная запись в переменную
Посмотрите здесь:

Запись данных в переменную и в файл C++
C++ Запись даты в переменную
C++. Запись матем. выражений в переменную C++
C++ Чтение из файла и запись в переменную
C++ Неверная запись в файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
05.11.2013, 19:39     Неверная запись в переменную #2
Ну, не знаю...
Миниатюры
Неверная запись в переменную  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
05.11.2013, 19:40     Неверная запись в переменную #3
Цитата Сообщение от Arkaniy Посмотреть сообщение
Я ввожу значение 0.2, но в переменную записываетя 0.20000000000000001.
Таковы особенности представления вещественных чисел.

подробнее: Представление вещественных чисел "на пальцах"
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
05.11.2013, 19:45  [ТС]     Неверная запись в переменную #4
Anton_Kretov, так-то да, всё верно. Но в пошаговом отладчике видно, что это не так.
Croessmah, сейчас прочту. Спасибо.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
05.11.2013, 19:47     Неверная запись в переменную #5
Цитата Сообщение от Arkaniy Посмотреть сообщение
Но в пошаговом отладчике видно, что это не так.
так оно и будет.
Цитата Сообщение от Arkaniy Посмотреть сообщение
но при сравнении этого числа уже неверный результат.
сравнивайте с определенной точностью, а не оператором ==
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
05.11.2013, 19:51  [ТС]     Неверная запись в переменную #6
\del
Yandex
Объявления
05.11.2013, 19:51     Неверная запись в переменную
Ответ Создать тему
Опции темы

Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru