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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gund
18 / 18 / 0
Регистрация: 05.05.2013
Сообщений: 88
#1

Вещественные числа и округление - C++

12.10.2013, 23:10. Просмотров 547. Ответов 1
Метки нет (Все метки)

Или я туплю, или долго сижу, но вот никак не могу решить такую задачу: есть диапазон (напр. от 88 до 88.5), нужно в цикле обойти этот диапазон с шагом 0.1. Написал вот так:
C++
1
2
3
4
for (double i = 88; i < 88.5; i+=0.1)
        {
            // Тут нужно делать проверки связанные с i, то есть очень важно точность (одна цифра после запятой) при каждой итерации
}
И при исполнении кода неправильно итерируется i. В дебаге я посмотрел, оно вот такое:
88.000000000000000
88.099999999999994
88.199999999999989
88.299999999999983
88.399999999999977
88.499999999999972
Нужно либо заставить правильно (точно) складываться, либо округлять до 1 цифры после запятой, иначе просто не работает сравнение в цикле.
Спасибо.

Пытался сделать так:
C++
1
i = int(i*10)/10.0;
Без толку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вещественные числа и округление (C++):

вещественные числа - C++
По заданным вещественным числам a0,a1,...,an,b0,b1,...,bn,c0,c1,...,cn, x,y,z вычислить: ...

Вещественные числа - C++
Помогите сделать чтоб вещественное число было кратно 7 . Задание Выводиться последовательность из N вещественных чисел. Определить...

Вещественные числа - C++
Доброго времени суток! Возникло несколько вопросов по поводу представления дробных чисел в памяти. Первый вопрос: #include...

Округление числа - C++
Не пойму, почему компилятор пишет Выражение должно иметь целочисленный или перечисляемый тип. Код для округления числа float...

Округление числа - C++
Кто-нибудь может подробно-подробно объяснить, как округлять числа в C++. А то я то, что причитал, ничего не понял. Вот у меня...

Даны вещественные числа А > 1 и В - C++
Даны вещественные числа А &gt; 1 и В. Распечатать все числа вида сi = Аi (i = 1,2,...), меньшие В. Помогите решить в C++.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Гром
210 / 129 / 11
Регистрация: 20.03.2009
Сообщений: 1,103
Записей в блоге: 16
Завершенные тесты: 1
12.10.2013, 23:32 #2
Точные значения вы не сможете получить из-за особенностей представления чисел в память компьютера (они там хранятся как степени двойки, поэтому точно можно получить только числа вида 1*0.5 + 0*0.25 + 1*0.125 + ...)
Для сравнения напишите как-нибудь так:
C++
1
2
3
double epsilon = 0.001;
for (double i = 88; fabs(i - 88.5) < epsilon; i += 0.1)
 //
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 23:32
Привет! Вот еще темы с ответами:

Даны вещественные числа A1, A2, A3 - C++
Даны вещественные числа A1, A2, A3, ... . Признак конца последовательности число 999. Определить:разность между наибольшим числом и...

Даны вещественные числа х, у - C++
Задача 48. Даны вещественные числа х, у. Найти значение sin x при (х, у)  D; z = х + 2у при (х, у)  D. Область D задается...

Даны вещественные числа x, y - C++
Вычислить

вещественные числа в разные СС - C++
нужно написать программу, которая переводит вещественное число с основанием 2-16 в другое, с основанием 2-16 может у кого завалялись...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru