Как в c округлить число до сотых
Регистрация: 13.02.2011
Сообщений: 82
C++ Округление до десятых
Здравствуйте. Задача у меня такая: вывести вещественное число, окугленное до десятых долей(Например: 12.12345 —> 12.1). Работаю в стареньком компиляторе Microsoft Visual C++ 6.0, в консольном режиме
Пробовал сделать так:
#include #include #include void main () //начало главной программы float n=12.12345;//переменная для натурального числа printf (" %f ", round(n,-1) );//округляем и выводим getch ();//для паузы завершения >//завершение главной программы
Ругается на «round». Как правильно прописать?
Последний раз редактировалось Stilet; 06.03.2011 в 11:56 .
Деление чисел 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#
А знаете ли вы, что Math.Round(1.5) == Math.Round(2.5) == 2 ? Можете ли сходу сказать, сколько будет -7%3 и 7%-3 ? Помните ли, чем отличаются Math.Round , Math.Floor , Math.Ceiling , Math.Truncate ? А как происходит округление при использовании string.Format ? Давайте немного погрузимся в мир округлений и разберёмся с нюансами, которые не для всех могут быть очевидными.
Math.Round
Math.Round — это метод округления к ближайшему числу или к ближайшему числу с заданным количеством знаков после запятой. Работает с типами decimal и double , в параметрах можно встретить три вида параметров:
- value : округляемое число
- digits : количество знаков в дробной части, которые нужно оставить
- mode : параметр, который определяет в какую сторону округлять число, которое находится ровно посередине между двумя вариантами
Параметр mode используется, когда округляемое значение находится ровно посередине между двумя вариантами. Принимает значение из следующего перечисления:
Обратите внимание, что по умолчанию mode == MidpointRounding.ToEven , поэтому Math.Round(1.5) == Math.Round(2.5) == 2 .
Math.Floor, Math.Ceiling, Math.Truncate
Сводная таблица
Сориентироваться в методах округления может помочь следующая табличка:
Округление проводится в соответствии со стандартом IEEE Standard 754, section 4.
Целочисленное деление и взятие по модулю
В C# есть два замечательных оператора над целыми числами: / для целочисленного деления (MSDN) и % для взятия остатка от деления (MSDN). Деление производится по следующим правилам:
- При целочисленном делении результат всегда округляется по направлению к нулю.
- При взятии остатка от деления должно выполняться следующее правило: x % y = x – (x / y) * y
Также можно пользоваться шпаргалкой:
string.Format
При форматировании чисел в виде строки можно пользоваться функцией string.Format (см. Standard Numeric Format Strings, Custom Numeric Format Strings). Например, для вывода числа с двумя знаками после десятичной точки можно воспользоваться string.Format(«», value) или string.Format(«», value) . Округление происходит по принципу AwayFromZero . Проиллюстрируем правила округления очередной табличкой:
", value) |
Задачи
На приведённую тему есть две задачки в ProblemBook.NET: Rounding1, Rounding2.
- GitHub
- RSS