![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.12.2010
Сообщений: 12
|
![]()
Привет всем.
Как в с++ перебрать дробных значений от 0 до 100 с промежутком в 0.01(т.е. 0,00 0,01 0,02 ... 99,98 99,99 100,00). Я пробовал так: Код:
Пожалуйста подскажите как сделать чтобы получать точные значения, т.е. 0.1 |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Имхо, точные Вы не получите.
Число получается из суммы чисел кратных 2, т.е. 1/2, 1/4, 1/8, 1/16, т.е. точно представить 1/10 нельзя.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.05.2012
Сообщений: 88
|
![]()
Точных значений получить не удастся, так как в двоичной системе 0,01 - бесконечная периодическая дробь. В памяти хранится приближенное значение. Можно сделать цикл от 0 до 10000, а в теле цикла использовать значение, уменьшенное в 100 раз. Можно использовать вывод числа в указываемом формате.
Ну и вообще, такая точность - это все равно что измерять длину экватора Земли с точностью до сантиметра. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 03.12.2010
Сообщений: 12
|
![]()
А возможно сделать как-то так: прибавлять 0,001(чтобы отсечь 0.0999999) и выводить до 2 знаков после запятой?
Последний раз редактировалось phenix; 03.01.2013 в 17:45. |
![]() |
![]() |
![]() |
#5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Кстати, у меня в CodeBlocks (gcc) выводится без этих "кривых" окончаний.
Если только для вывода, то попробуйте printf("%.2lf ",i);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 03.12.2010
Сообщений: 12
|
![]()
Большое спасибо
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перебор всех доступных значений! | AquaKlaster | Общие вопросы Delphi | 40 | 02.03.2015 12:27 |
Перебор значений (DevC++) | InquisitorAles | Помощь студентам | 5 | 21.11.2010 23:26 |
Перебор значений таблицы | Domain | Microsoft Office Excel | 2 | 05.10.2010 05:33 |
Перебор значений для поиска | RailOS | Microsoft Office Excel | 5 | 17.06.2010 16:16 |
Перебор значений | genf | Microsoft Office Excel | 0 | 18.12.2009 10:56 |