![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
crafter
Форумчанин
Регистрация: 03.09.2011
Сообщений: 127
|
![]()
Долго не мог понять почему:
Код:
Оказывается 3.14*10.0 != 31.4. Почему? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]()
Скорее всего, здесь издержки машинного представления вещественных чисел.
Данные числа, в отличие от целых, "в лоб" лучше не сравнивать. Даже если число с конечным числом знаков после запятой , то лучше округлить до нужного числа знаков. То есть, попробуйте округлит результат вычисления 3,14*10 до 1 знака после запятой. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
проблема в машинном представлении вещественных чисел.
Ознакомьтесь с темой Вещественные числа НЕЛЬЗЯ сравнивать. Почитайте по этой ссылке статьи... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
А почему бы? | ZuBy | О форуме и сайтах клуба | 6 | 16.09.2013 19:00 |
Почему? С++ | xitrec1zaraza | Помощь студентам | 5 | 15.03.2011 20:02 |
Почему 0? | Nikita++ | Помощь студентам | 4 | 20.10.2010 19:39 |
Почему? | logok | Общие вопросы C/C++ | 2 | 12.04.2010 21:59 |
Почему? | Sota | О форуме и сайтах клуба | 4 | 26.07.2007 16:26 |