0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 5
1

Почему x меньше 1?

22.01.2015, 17:34. Показов 422. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main (void)
{
 
double x = 0.7;
 
while (x < 1.2) {
  printf("x = %.1f\n", x);
  if (x < 1) printf ("x < 1 !\n");
  x += 0.1;
  }
}
вывод программы:

C++
1
2
3
4
5
6
7
8
9
x = 0.7
x < 1 !
x = 0.8
x < 1 !
x = 0.9
x < 1 !
x = 1.0
x < 1 !
x = 1.1
Почему в выводе появляется строка №8?
Компилятор: g++ 4.8.2
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2015, 17:34
Ответы с готовыми решениями:

Почему при условие сравнения "меньше или равно" получается только "меньше"
Почему при условие сравнения &quot;меньше или равно&quot; получается только &quot;меньше&quot;

Определить количество элементов массива, которые меньше предыдущего и меньше последующего
В целочисленном,одномерном массиве определить кол-во элементов, которые меньше предыдущего и меньше...

Почему когда меньше 10 чисел выбивает ошибка
Почему когда я ввожу меньше 10 чисел у меня выбивает ошибка? int n=Edit1-&gt;Text.Length(); if...

Почему флэшка стала меньше?
Флэшка в 4 Гб почему-то стала 1,9 Гб и показывает что на ней 80% занято, хотя файлов на ней никаких...

4
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
22.01.2015, 17:41 2
Округляется при выводе.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    double x = 0.7;
    while ( x < 1.2 ) {
        printf( "x = %20.18f\n", x );
        if ( x < 1 ) printf( "x < 1 !\n" );
        x += 0.1;
    }
}
x = 0.699999999999999960
x < 1 !
x = 0.799999999999999930
x < 1 !
x = 0.899999999999999910
x < 1 !
x = 0.999999999999999890
x < 1 !
x = 1.099999999999999900
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,517
22.01.2015, 17:41 3
Цитата Сообщение от dmnsk Посмотреть сообщение
Почему в выводе появляется строка №8?
потому что с плавающими такие штучки не проходят
1.0 в памяти вполне может лежать как 0.99999
почитай в блогах у Evg
https://www.cyberforum.ru/blogs/18334/blog88.html
0
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 5
22.01.2015, 18:09  [ТС] 4
ValeryS, castaway, спасибо
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,517
22.01.2015, 18:20 5
на всякий случай
как сравнивают числа с плавающей запятой
вводят погрешность
например
C++
1
2
3
if(n==1.0) // так неправильно
double eps=0.0001;// вот это и есть погрешность от неё зависит точность
if(fabs(n-1.0)<eps)// если разность меньше погрешности то считаем что совпали,fabs это функция которая возвращает модуль
это как в жизни расстояния между городами меряют в километрах но не в ангстремах
еще раз приведу цитату, проводил в другой теме
После первых измерений ему показалось, что картина распределения
получится слишком грубой. Он решил уточнить методику. Перебрал несколько
сортов нитей подвески. Поставил сверхчувствительный гальванометр. Затем
ему пришло в голову автоматически стабилизировать температуру прибора.
Учесть искажающее влияние трансформатора...
- Почему вы не учитываете полярных сияний? Заряды кота у сторожихи? -
спросил его Аникеев. - Вы больны. Болезнь называется "немогуостановиться".
Научитесь себя ограничивать. Получили примерную величину и двигайте
дальше. Искать истину в последней инстанции - зряшный труд. И существует
ли она, эта последняя инстанция?
Д. Гранин "Иду на грозу"
0
22.01.2015, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2015, 18:20
Помогаю со студенческими работами здесь

Почему в Fallout 4 меньше 20 FPS?
Купил новую видеокарту, а ФПСа нет, хотя текстуры стали быстро грузиться. Вот мой комп: ...

Почему реальная скорость меньше заявленной ?
Здравствуйте. Есть такая проблема: в тарифе заявленная скорость 5 мб/c, когда например качаешь...

Почему у фразы с бОльшей частотностью меньше CTR?
Создаю кампанию и вижу, что некоторые из фраз не принимаются из-за низкого CTR (подсвечены серым),...

Почему при выводе если х меньше 1 (-1.IND00)
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; int main(int argc, char *argv) {...

Почему в google chrome сайт выглядит меньше
Может конечно вопрос и глупый, но всё же спрошу, не нашёл в инете ответа. В фаерфоксе сайт...

Почему доступно памяти меньше, чем установлено?
Добрый день! Есть две планки памяти DDR2 по 2 Гб, разных фирм, но одинаковой частоты Kllisre и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru