Как округлить число до сотых?
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь?
Мне 11 лет, и я учусь программировать на С++.
У меня есть программа, которая вычисляет цену картины по её длине и ширине. Но полученную цену нужно округлить до сотых. Как это сделать?
Вот код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include int main() { double a=0, b=0, c=0; std::cout " Enter the width of the picture "; std::cin >> a; std::cout " Enter the length of the picture "; std::cin >> b; c =a*b*0.00406; std::cout " The price is " c std::endl; std::cout " press Enter. "; std::cin.get(); std::cin.get(); return 0; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вычислить синус ,округлить до сотых и записать в string
Вычислить синус ,округлить до сотых и записать в string я пробовал так но не пашет,выдает 1 .
Как округлить число с 19 до 20
Вопрос в заголовке. Прошу подсказать.
как округлить число?
нужно чтобы от числа F выводило только целую часть, пример f=5.4 —>5 f=5.8 —>5 как это.
Как округлить число типо float?
Как округлить число типо float до определенного числа знаков после запятой?
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
Сообщение от Kubson 
Мне 11 лет,
Можно не указывать свой возраст в каждом сообщении.
Сообщение от Kubson 
Но полученную цену нужно округлить до сотых. Как это сделать?
Можно воспользоваться setprecision( n ), где n — количество цифр после запятой.
![]()
4984 / 3091 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
double a = . a = (int)(a * 100) / 100.;
Регистрация: 17.07.2014
Сообщений: 253
Я не понимаю, куда вписывать эти две строки.
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
Сообщение от Kubson 
Я не понимаю, куда вписывать эти две строки.
В моём варианте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include #include int main() { double a=0, b=0, c=0; std::cout " Enter the width of the picture "; std::cin >> a; std::cout " Enter the length of the picture "; std::cin >> b; c =a*b*0.00406; std::cout " The price is " std::setprecision( 2 ) c std::endl; std::cout " press Enter. "; std::cin.get(); std::cin.get(); return 0; }
В варианте от castaway:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include int main() { double a=0, b=0, c=0; std::cout " Enter the width of the picture "; std::cin >> a; std::cout " Enter the length of the picture "; std::cin >> b; c =a*b*0.00406; c = (int)(c * 100) / 100.; std::cout " The price is " c std::endl; std::cout " press Enter. "; std::cin.get(); std::cin.get(); return 0; }
40 / 40 / 17
Регистрация: 04.02.2014
Сообщений: 144
Сообщение от porshe 
Можно воспользоваться setprecision( n )
Сообщение от castaway 
Код C++
1 double a = .
2 a = (int)(a * 100) / 100.;
Но это ведь не округление, а просто отсечение лишних цифр. Т.е. из числа, допустим, 3.0176 получим 3.01, хотя при округлении должно быть 3.02.
34 / 34 / 21
Регистрация: 02.02.2012
Сообщений: 181
вот пример с округлением:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include using namespace std; int main() { double x = 23.2358; double y = 0.3412; cout setiosflags(ios::fixed) setprecision(2) x endl; // 23.236 cout setprecision(2) y endl; // 0.34 return 0; }
setiosflags(ios::fixed) — нужно для корректного вывода данного числа (в неэкспоненциальной форме)
Регистрация: 17.07.2014
Сообщений: 253
Первый вариант не правильный, в нём округляется до десятых, зато второй вариант отлично работает! Спосибо!
34 / 34 / 21
Регистрация: 02.02.2012
Сообщений: 181
Почему неправильный первый вариант? Я просто в комменте ошиблась, там выведется 23.24
![]()
4984 / 3091 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
Donnerwetter, это именно округление. В какую сторону необходимо округлять ТС не говорил.
В большую сторону:
a = (int)ceil( a * 100 ) / 100.;
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
Сообщение от castaway 
это именно округление
)
под округлением обычно понимается математическое округление, если первая отбрасываемая цифра в дробной части меньше 5 — то число округляется к ближайшему меньшему целому, если отбрасываемая цифра 5 или больше — то округляется к большему целому.
Но код совсем несложно модифицировать для такого округления:
a = (int)( a * 100 + 0.5) / 100.;
только нужно посмотреть, что будет, если а отрицательно
Регистрация: 17.07.2014
Сообщений: 253
TyLinka, я писал это не тебе, а пользователю porshe!
Добавлено через 20 минут
Не один из пока услышенных вами вариантов не был правильным! В варианте от Castaway не округляется, а отделяются две последние цифры. В варианте от TyLinka программа не запускается, у porshe округляется до десятых, а не до сотых. Помогите, пожалуйста! Мне нужно округление до сотых, в меншую сторону. Например: чтобы если пользователь ввел 55 и 20, ему выдало число 4,47. А не 4,46 как в варианте castaway.
Добавлено через 13 минут
А вот вариант Sergo Leone обсалютно правильный!
Добавлено через 1 минуту
В моей программе на экран выводится цена картины. Подскажите, пожалуйста, как сделать так, чтобы после числа выводился значок €. Например: 4,47 €. Заранее благодарю!
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как округлить число до сотых?
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь.
Конвертер валют. Как округлить число до сотых?
Доброго времени суток! Изучаю java и столкнулся с проблемой. Суть задачи такова. Пользователь.

округлить число до сотых долей
3. x – вещественное число. Запишите выражение, которое округлит его до сотых долей (останется.
Как округлить число до десятых, или сотых, или дальше..
Собственно есть флоат число. Допустим это 78,0985321436 . надо сделать чтобы вывело 78,099.
Деление чисел C++ для начинающих. Округление числа
На этом блоге постоянно находятся посетители. Значит имеет смысл продолжать его вести. Итак в C++ для начинающих часто требуются разные вычисления. Я уже писал. Статья арифметика в borland c++ 3.1 Там не написал одного момента. Я не знал как округлить число. Что ж. Надо добивать эту информацию. Так как я обещал вначале, что буду вести что-то вроде обучения в Реал Тайм, то не имеет смысла туда дописывать этот кусочек полезного.
Округлить число в C++ можно так
#include //Эта директива позволяет получать округленное число
int main ()
clrscr ();
double x = floor ( 7 / 3 )/ 100 ; //Присваиваем в x число равное 7/3 и округляем его до сотых
cout getch (); //Ожидаем нажатие любой клавиши
return 0 ; //Заканчиваем программу и выходим из функции
>
Вот так легко округляется число до определенного числа знаков после запятой
Маленькое, но очень полезное в С++ для начинающих дополнение.
Для округления числа достаточно подключить директиву math.h ииспользовать функцию floor В скобках мы указываем наше вычисление, которое хотим округлить, а после скобок через дробь то значение, на которое округляем.
Та же самая запись, что и выше, но для наглядности Начинающим в C++ может очень пригодится
int main ()
clrscr ();
int a = 7 , b = 3 ;
double x = floor ( a / b )/ 100 ; //Присваиваем в x число равное 7/3 и округляем его до сотых
cout getch (); //Ожидаем нажатие любой клавиши
return 0 ; //Заканчиваем программу и выходим из функции
================
Было рассмотрено стандартное округление, которое знакомо нам со школы. Но есть и другие типы округлений
1) Округление до наименьшего целого, не меньше чем округляемое число
ceil ( x ) x- это наше число
ceil ( 5.01 ) ; Результат округления 6
ceil ( 5.9 ); Результат округления 6
2) Округление до наибольшего целого, не больше чем округляемое число
floor ( x ) – x это наше число
функция floor ( x ) отбрасывает дробную часть. Дробную часть можно сохранить до нужных долей. Этот пример округления был рассмотрен выше
Округление
Округление в C++ довольно часто требуется для выполнения различных задач. Существует большое количество вариантов округления, в зависимости от необходимого значения. Как и большинство мат. операций, они находятся в библиотеке , а также более старой библиотеке .
Самые распространенные – это функции round(), ceil(), floor() и trunc(). Если первая выполняет математически правильное округление, то есть к ближайшему целому, а 0,5 к более дальнему от 0, то ceil() округляет в сторону большего, а floor() — в сторону меньшего. Последняя функция trunc() скорее не округление, а простое отбрасывание дробной части. Продемонстрируем на примере:
Как в c округлить число до сотых
У String format и DecimalFormat есть одна маленькая большая проблема, внимательные заметили, что при создании строки точка меняется на запятую, те при попытке распарсить эту строку в дабл вы получите эксепшен(
Андрей Овчаренко Уровень 41
23 января 2021
В статье упущен важный момент — некоторые методы в результате округления ставят точку, а некоторые запятую!
Sergey F. Уровень 25
16 июня 2020
double value = 34.777774; double result = Math.ceil(value); System.out.println((result)); //35.0
Даже если у нас будет 34.0000000, все равно после использования Math.ceil мы получим 35,0. Возможно я не так понял, но код
double value = 34.0000000; double result = Math.ceil(value); System.out.println(result);
выдаст результат:
11 июня 2020
double value = 34.777774; int result = Math.round(value); System.out.println((result));
Здесь не скомпилируется — Math.round(double) возвращает long.
11 июня 2020
«Даже если у нас будет 34.0000000, все равно после использования Math.ceil мы получим 35,0.» Здесь, по-видимому, опечатка, необходима хотя бы одна цифра после нулей, чтобы округлялось до 35. Стоит ещё упомянуть код формата `g`, который позволяет задавать кол-во значащих цифр:
System.out.format("%.5g%n", 77.0); // => 77.000
Сообщество
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
«Программистами не рождаются» © 2023 JavaRush
Скачивайте наши приложения
«Программистами не рождаются» © 2023 JavaRush
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
