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

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

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

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

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

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

Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов - C++
Привет всем! Вот пишу программу, преподаватель сказал чтобы написал защиту от ввода чисел с плавающей точкой, отрицательных, символов. В...

Сравнение чисел с плавающей точкой - C++
Известно, что числа с плавающей точкой нельзя сравнивать с помощью ==. Однако, нет ли исключения из этого правила? Дело вот в чём. Если мы...

Массив чисел с плавающей точкой - C++
#include <iostream> #include <ctime> #include <fstream> using namespace std; int main() { float randomDigits_5 {}; ...

Калькулятор чисел с плавающей точкой - C++
double calculate(float x, char s, float y); int main() { float x,y; char s; x=y=0; cin>>x>>s>>y;

Представление чисел с плавающей точкой - C++
Никак не пойму почему в коде: double helper; bool cond; int dim_2; int dim_1; helper=0.0; ...

Умножения чисел с плавающей точкой - C++
Доброго времени суток,нужна ваша помощь в умножение чисел с плавающей точкой. Суть программы:Умножение чисел в двоичном коде.Первое число...

4
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,884
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 13:26 #2
А такой вариант:
C++
1
printf("%.1f\n", test);
???

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

А можно где-нибудь посмотреть по каким правилам происходит округление в printf?
0
Helo
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 52
18.07.2013, 13:39 #4
А что вам нужно вывести?
попробуйте так
C++
1
printf("%-5.5g\n", test);    // 0.58
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,884
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 13:40 #5
delete
0
18.07.2013, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 13:40
Привет! Вот еще темы с ответами:

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

Округление положительных чисел с плавающей точкой - C++
Добрый день ! Нужно округлить положительных чисел с плавающей точкой в большую сторону к числу кратному 5. то есть если есть...

Проблема сравнения чисел с плавающей точкой - C++
Добрый вечер, развивая тему к которой меня подтолкнул, Байт, посоветуйте ряд лайффаков на тему фикса (кроссплатформенность же ж ) ...

Определите одномерный массив из 10 чисел с плавающей точкой - C++
1. Определите одномерный массив из 10 чисел с плавающей точкой в тексте программы. Вычислите минимальное и максимальное значение и позиции...


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

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

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