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

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

Войти
Регистрация
Восстановить пароль
 
i8086
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 9
#1

Форматирование чисел с плавающей точкой - C++

18.07.2013, 13:18. Просмотров 547. Ответов 4
Метки нет (Все метки)

Все знают про проблемы с представлением дробных чисел.
Например:
C++
1
2
3
4
    
    double test = .58;
    printf("%f\n", test);    // 0.580000
    printf("%.20f\n", test); // 0.57999999999999996003
Число .58 представлено как .57999... но выводиться как .58.
Как реализовать такое форматирование?
По каким правилам и до скольких знаков округлять?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2013, 13:18     Форматирование чисел с плавающей точкой
Посмотрите здесь:

C++ Определите одномерный массив из 10 чисел с плавающей точкой
Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов C++
Калькулятор чисел с плавающей точкой C++
C++ Сравнение чисел с плавающей точкой
C++ Считывание из файла чисел с плавающей точкой
C++ Проблема сравнения чисел с плавающей точкой
C++ Неверный вывод отсортированного массива чисел с плавающей точкой
Округление положительных чисел с плавающей точкой C++
Как найти остаток от деления чисел с плавающей точкой? C++
C++ Массив чисел с плавающей точкой
C++ Умножения чисел с плавающей точкой
C++ Деление чисел с плавающей точкой в двоичной системе счисления

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12512 / 7074 / 794
Регистрация: 27.09.2012
Сообщений: 17,466
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 13:26     Форматирование чисел с плавающей точкой #2
А такой вариант:
C++
1
printf("%.1f\n", test);
???

Добавлено через 1 минуту
Цитата Сообщение от i8086 Посмотреть сообщение
По каким правилам и до скольких знаков округлять?
Округление происходит во время вывода.
i8086
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 9
18.07.2013, 13:39  [ТС]     Форматирование чисел с плавающей точкой #3
C++
1
printf("%.1f\n", test);
Выводит 0.6

А можно где-нибудь посмотреть по каким правилам происходит округление в printf?
Helo
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 52
18.07.2013, 13:39     Форматирование чисел с плавающей точкой #4
А что вам нужно вывести?
попробуйте так
C++
1
printf("%-5.5g\n", test);    // 0.58
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12512 / 7074 / 794
Регистрация: 27.09.2012
Сообщений: 17,466
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 13:40     Форматирование чисел с плавающей точкой #5
delete
Yandex
Объявления
18.07.2013, 13:40     Форматирование чисел с плавающей точкой
Ответ Создать тему
Опции темы

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