Оглавление
- Синтаксис функции Python Rounl ()
- Модули для вычислений с плавающей запятой
- Целые числа и числа с плавающей запятой
- Python round() function examples
- Использование Python Round () на пользовательских объектах
- Модуль Decimal
- Use the numpy.ceil() Method to Round Up a Number in Python
- Syntax:
- Методы
- Полезные методы Decimal
- Use Simple Arithmetic to Round Up a Number in Python
- How much Impact can Rounding Have? (Rounding vs Truncation)
- Use the math.ceil() Function to Round Up a Number in Python 2.x
- 32 Comments
- Встроенные функции
- How to round away from zero
Синтаксис функции Python Rounl ()
Функция очень проста. Требуется номер и выводит желаемое закругленное число.
round(num, )
Здесь нам нужно раунд Итак, мы передаем это на Отказ Мы также можем указать точность округления, используя Отказ Это гарантирует, что номер будет округлен до ndigits точность после десятичной точки.
Если вы хотите включить его в целочисленные значения, вам не нужно предоставлять это значение. В этом случае ближайшее целочисленное значение будет возвращено.
Кроме того, если номер имеет форму Затем значения будут округлены, если значение раунда является четным числом. В противном случае он будет округлен.
Например, 2,5 будут округлены до 2, так как 2 – ближайший четный номер, а 3.5 будет округлен до 4.
С этим покрытым, давайте посмотрим на некоторые примеры:
Модули для вычислений с плавающей запятой
Есть четыре популярных модуля, которые помогут вам правильно работать с числами с плавающей запятой. Сюда входят модули math, Numpy, decimal и fraction.
Математический модуль (math) сосредоточен на математических константах, операциях с плавающей запятой и тригонометрических методах. Модуль Numpy описывает себя как «фундаментальный пакет для научных вычислений» и известен своим разнообразием методов работы с массивами. Модуль decimal охватывает десятичную арифметику с фиксированной и плавающей запятой, а модуль fraction имеет дело, в частности, с рациональными числами.
Во-первых, мы должны попытаться улучшить вычисления из примера 1. Как показано в примере 7, после импорта математического модуля мы можем получить доступ к методу fsum(), который принимает список чисел с плавающей запятой. Для первого вычисления нет разницы между встроенным методом sum() и методом fsum() из математического модуля, но для второго – он возвращает правильный результат, которого мы ожидали. Точность зависит от базового алгоритма IEEE 754.
Пример 7: вычисления с плавающей запятой с помощью модуля math
>>> import math >>> sum() 0.30000000000000004 >>> math.fsum() 0.30000000000000004 >>> sum() 0.9999999999999999 >>> math.fsum() 1.0
Во-вторых, давайте посмотрим на модуль Numpy. Он поставляется с методом around(), который округляет значения, предоставленные в виде массива. Он обрабатывает отдельные значения так же, как метод round() по умолчанию.
Для сравнения значений Numpy предлагает метод equal(). Как и around(), он принимает отдельные значения, а также списки значений (так называемые векторы) для обработки. В примере 8 показано сравнение отдельных значений, а также округленных. Наблюдаемое поведение очень похоже на ранее показанные методы.
Пример 8: сравнение значений с использованием метода equal из модуля Numpy
>>> import numpy >>> print (numpy.equal(0.3, 0.3)) True >>> print (numpy.equal(0.3 + 0.3 + 0.3 , 0.9)) False >>> print (numpy.equal(round(0.3 + 0.3 + 0.3) , round(0.9))) True
Вариант третий – десятичный модуль (decimal). Он предлагает точное десятичное представление и сохраняет значащие цифры. По умолчанию точность составляет 28 цифр, и вы можете изменить это значение на число, которое будет настолько большим, насколько это необходимо для вашей проблемы. В примере 9 показано, как использовать точность до 8 цифр.
Пример 9: создание десятичных чисел с помощью модуля decimal
>>> import decimal >>> decimal.getcontext().prec = 8 >>> a = decimal.Decimal(1) >>> b = decimal.Decimal(7) >>> a / b Decimal('0.14285714')
Теперь сравнение значений с плавающей запятой стало намного проще и привело к желаемому результату.
Пример 10: сравнение с использованием модуля Decimal
>>> import decimal >>> decimal.getcontext().prec = 1 >>> a = decimal.Decimal(0.3) >>> b = decimal.Decimal(0.3) >>> c = decimal.Decimal(0.3) >>> a + b + c Decimal('0.9') >>> a + b + c == decimal.Decimal('0.9') True
Модуль decimal также имеет метод округления значений – quantize(). Стратегия округления по умолчанию – округление от половины до четного, и при необходимости ее также можно изменить на другой метод. В примере 11 показано использование метода quantize()
Обратите внимание, что количество цифр указывается с использованием десятичного значения в качестве параметра.
Пример 11: округление значения с помощью quantize()
>>> d = decimal.Decimal(4.6187) >>> d.quantize(decimal.Decimal("1.00")) Decimal('4.62')
И последнее, но не менее важное: мы рассмотрим модуль fractions. Этот модуль позволяет обрабатывать значения с плавающей запятой как дроби, например 0,3 как 3/10
Это упрощает сравнение значений с плавающей запятой и полностью исключает округление значений. В примере 12 показано, как использовать модуль fractions.
Пример 12: хранение и сравнение значений с плавающей запятой
>>> import fractions >>> fractions.Fraction(4, 10) Fraction(2, 5) >>> fractions.Fraction(6, 18) Fraction(1, 3) >>> fractions.Fraction(125) Fraction(125, 1) >>> a = fractions.Fraction(6, 18) >>> b = fractions.Fraction(1, 3) >>> a == b True
Кроме того, два модуля десятичной дроби и дроби можно комбинировать, как показано в следующем примере.
Пример 13: работа с десятичными знаками и дробями
>>> import fractions >>> import decimal >>> a = fractions.Fraction(1,10) >>> b = fractions.Fraction(decimal.Decimal(0.1)) >>> a,b (Fraction(1, 10), Fraction(3602879701896397, 36028797018963968)) >>> a == b False
Целые числа и числа с плавающей запятой
Python имеет три встроенных числовых типа данных: целые числа, числа с плавающей запятой и комплексные числа. В этом разделе вы узнаете о целых числах и числах с плавающей запятой, которые являются двумя наиболее часто используемыми типами чисел. Вы узнаете о комплексных числах в следующем разделе.
Целые числа
Целое число – это целое число без десятичных знаков. Например, 1 – целое число, а 1.0 – нет. Имя для целочисленного типа данных – , которое вы можете увидеть с помощью :
Вы можете создать целое число, набрав желаемое число. Например, следующее присваивает переменной целое число 25:
Когда вы создаете такое целое число, значение 25 называется целочисленным литералом, потому что целое число буквально вводится в код.
Возможно, вы уже знакомы с тем, как преобразовать строку, содержащую целое число, в число с помощью . Например, следующее преобразует строку «25» в целое число 25:
не является целочисленным литералом, потому что целое значение создается из строки.
Когда вы пишете большие числа от руки, вы обычно группируете цифры в группы по три, разделенные запятой или десятичной точкой. Число 1000000 читать намного легче, чем число 1000000.
В Python нельзя использовать запятые для группировки цифр в целочисленных литералах, но можно использовать символы подчеркивания (_). Оба следующих способа являются допустимыми способами представления числа один миллион как целочисленного литерала:
Нет предела тому, насколько большим может быть целое число, что может быть удивительно, учитывая, что компьютеры имеют конечный объем памяти. Попробуйте ввести наибольшее число, которое вы можете придумать, в интерактивном окне IDLE. Python справится с этим без проблем!
Числа с плавающей запятой
Число с плавающей запятой(floating-point number) или сокращенно с плавающей запятой(float) – это число с десятичной запятой. 1.0 – это число с плавающей запятой, как и -2.75. Имя типа данных с плавающей запятой – float:
Как и целые числа, числа с плавающей запятой можно создавать из литералов с плавающей запятой(floating-point literals) или путем преобразования строки в число с плавающей запятой с помощью функции :
Есть три способа представить литерал с плавающей запятой. Каждое из следующих действий создает литерал с плавающей запятой со значением один миллион:
Первые два способа аналогичны двум методам создания целочисленных литералов. Третий подход использует нотацию E для создания литерала с плавающей запятой.
Чтобы написать литерал с плавающей запятой в нотации E, введите число, за которым следует буква e, а затем другое число. Python берет число слева от e и умножает его на 10, возведенное в степень числа после e. Итак, эквивалентно 1 × 10⁶.
Python также использует нотацию E для отображения больших чисел с плавающей запятой:
Число с плавающей запятой 200000000000000000.0 отображается как . Знак указывает, что показатель степени является положительным числом. Вы также можете использовать отрицательные числа в качестве показателя степени:
Литерал интерпретируется как в степени , что составляет 1/10000 или 0,0001.
В отличие от целых чисел, числа с плавающей запятой имеют максимальный размер. Максимальное число с плавающей запятой зависит от вашей системы, но что-то вроде должно выходить за рамки возможностей большинства машин. составляет 2 × 10⁴⁰⁰, что намного больше, чем общее количество атомов во Вселенной!
Когда вы достигнете максимального числа с плавающей запятой, Python вернет специальное значение с плавающей запятой, :
означает бесконечность, и это просто означает, что число, которое вы пытались создать, превышает максимальное значение с плавающей запятой, разрешенное на вашем компьютере. Тип по-прежнему :
Python также использует , что означает отрицательную бесконечность и представляет собой отрицательное число с плавающей запятой, которое превышает минимальное число с плавающей запятой, разрешенное на вашем компьютере:
Вы, вероятно, не будете часто сталкиваться с и как программист, если только вы не будете регулярно работать с очень большими числами.
Python round() function examples
Let’s take some examples to understand the function better.
1) Python function examples
The following example uses the function without passing the :
Output:
It returns an integer .
However, if you pass as zero, the function returns a float 1.0:
Output:
The following illustrates how the function works under the hood:
Since is zero, the function rounds the number to the closet multiple of 10-(0) = 1.
2) Python round() function example with negative ndigits
The following example uses the function with negative :
Because is , the function rounds the number to the closest multiple of (10-(-1)):
Since is situated between and (multiple of ), it’s closer to . Therefore, the function returns .
3) Python function example with ties
When you round a number situated in the middle of two numbers, Python cannot find the closest number.
For example, if you round the number with n is . There will be no closest number:
In this case, Python uses the IEEE 754 standard for rounding, called the banker’s rounding.
In the banker’s rounding, a number is rounded to the nearest value, with ties rounded to the nearest value with an even least significant digit.
Generally, a least significant digit in a number is the right most digit.
The banker’s rounding comes from the idea that statistically 50% sample of numbers are rounded up and 50% are rounded down.
For example:
It returns 1.2
Because the least significant digit of is , which is even:
Similarly, the rounding of will return :
Python uses banker’s rounding but not rounding away from zero because it’s less biased.
For example, if you average three numbers , , and , the rounding away from zero returns .0 while the banker’s rounding returns :
Number | Banker’s Rounding | Rounding away from zero |
---|---|---|
Average | 2.66666… | 3.0 |
1.5 | 2 | 2 |
2.5 | 2 | 3 |
3.5 | 4 | 4 |
Использование Python Round () на пользовательских объектах
Python Метод внутренне называет метод дудин.
Мы можем переопределить этот метод, если мы создаем пользовательский Класс Отказ Поэтому любой звонок На нашем объекте вместо этого перейдет этот переопределенный метод.
Давайте посмотрим на создание нашего собственного пользовательского рода!
class MyClass: def __init__(self, data): assert type(data) == type([]) self.data = data # Assume List type data of numbers def __round__(self, num_digits=None): for idx in range(len(self.data)): self.data = round(self.data, num_digits) return self my_obj = MyClass() my_obj = round(my_obj) print(my_obj.data)
Выход
Как вы можете видеть, мы смогли реализовать нашу собственную функцию округления для объект!
Модуль Decimal
Синтаксис
Decimal обеспечивает поддержку правильного округления десятичной арифметики с плавающей точкой.
, в отличие от , имеет ряд преимуществ:
- работает так же, как школьная арифметика;
- десятичные числа представлены точно (в отличие от float, где такие числа как 1.1 и 5.12 не имеют точного представления);
- точность десятичного модуля Decimal можно изменять (с помощью );
Точность
Контекстом в Deciaml можно управлять, устанавливая свои значения. Например, для того, чтобы управлять точностью Decimal, необходимо изменить параметр контекста (от англ. precision – точность):
Округление
Округление осуществляется с помощью метода . В качестве первого аргумента – объект Decimal, указывающий на формат округления:
Важно: если точность округления установлена в , а формат округления , возникнет ошибка:
Чтобы избежать ее, необходимо поменять точность округления, как было сделано в примере выше:
Помимо первого параметра, quantize() принимает в качестве второго параметра стратегию округления:
- – округление в направлении бесконечности (Infinity);
- – округляет в направлении минус бесконечности (- Infinity);
- – округление в направлении нуля;
- – округление до ближайшего четного числа. Число 4.9 округлится не до 5, а до 4 (потому что 5 – не четное);
- – округление до ближайшего нуля;
- – округление от нуля;
- – округление от нуля (если последняя цифра после округления до нуля была бы 0 или 5, в противном случае к нулю).
Помните, что как округление, так и точность вступают в игру только во время арифметических операций, а не при создании самих десятичных дробей
Use the numpy.ceil() Method to Round Up a Number in Python
Another method to round up a number is to use the method. First, we need to import the module in the script and then use the method to round up a number. The return type of the function is float, so even if the expression is in integers, the output will be in the float. The output can be explicitly cast to integer data type by explicitly casting it to be an integer.
An example code of this method to round up a number in Python is given below.
Output:
Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.
Syntax:
round(float_num, num_of_decimals)
Parameters
- float_num: the float number to be rounded.
- num_of_decimals: (optional) The number of decimals to be considered while rounding. It is optional, and if not specified, it defaults to 0, and the rounding is done to the nearest integer.
Description
The round() method takes two argument
- the number to be rounded and
- the decimal places it should consider while rounding.
The second argument is optional and defaults to 0 when not specified, and in such case, it will round to the nearest integer, and the return type will also be an integer.
When the decimal places, i.e. the second argument, is present, it will round to the number of places given. The return type will be a float.
If the number after the decimal place given
- >=5 than + 1 will be added to the final value
- <5 than the final value will return as it is up to the decimal places mentioned.
Return value
It will return an integer value if the num_of_decimals is not given and a float value if the num_of_decimals is given. Please note the value will be rounded to +1 if the value after the decimal point is >=5 else it will return the value as it is up to the decimal places mentioned.
Методы
Математики разработали множество различных методов округления. Это включает в себя простое усечение, округление вверх, в меньшую сторону, до половины вверх, до половины в меньшую сторону, а также половины от нуля и до четного.
Например, округление от нуля до половины применяется Европейской комиссией по экономическим и финансовым вопросам при конвертации валют в евро. Некоторые страны, такие как Швеция, Нидерланды, Новая Зеландия и Южная Африка, следуют правилу под названием «округление денежных средств», «округление пенни».
происходит, когда минимальная расчетная единица меньше наименьшего физического достоинства валюты. Сумма, подлежащая выплате за транзакцию с наличными, округляется до ближайшего кратного значения минимальной доступной денежной единицы, тогда как транзакции, оплаченные другими способами, не округляются.
В Южной Африке с 2002 года округление наличных денег производится до ближайших 5 центов. Обычно такое округление не применяется к электронным безналичным платежам.
Напротив, округление от половины до четного является стратегией по умолчанию для Python, Numpy и Pandas и используется встроенной функцией round(), о которой уже упоминалось ранее. Он принадлежит к категории методов округления до ближайшего и также известен как конвергентное округление, округление статистики, по голландскому языку, по Гауссу, по нечетному и четному. Этот метод определен в IEEE 754 и работает таким образом, что «если дробная часть x равна 0,5, то y является ближайшим к x четным целым числом».
Предполагается, что «вероятности связи в наборе данных при округлении в меньшую или большую сторону равны», что обычно и имеет место на практике. Хотя эта стратегия не полностью совершенна, она дает заметные результаты.
В таблице ниже приведены практические примеры округления в Python для этого метода:
| original value | rounded to | |----------------|------------| | 23.3 | 23 | | 23.5 | 24 | | 24.0 | 24 | | 24.5 | 24 | | 24.8 | 25 | | 25.5 | 26 |
Полезные методы Decimal
Итак, вот некоторые полезные методы для работы с десятичными числами в Decimal:
- – вычисляет квадратный корень из десятичного числа;
- – возвращает e^x (показатель степени) десятичного числа;
- – используется для вычисления натурального логарифма десятичного числа;
- – используется для вычисления log (основание 10) десятичного числа;
- – возвращает десятичное число, содержащее 3 аргумента, знак (0 для +, 1 для -), цифры и значение экспоненты;
- fma(a, b) – «fma» означает сложить, умножить и добавить. Данный метод вычисляет из чисел в аргументе. В этой функции округление не выполняется;
- – печатает первый аргумент, копируя знак из второго аргумента.
Полный список методов Decimal описан в
Use Simple Arithmetic to Round Up a Number in Python
A number can also be rounded up by using simple arithmetic in Python. This method is applicable to all versions of Python. It casts the first expression into an data type and adds 0 or 1 value based on the result of another expression. Other expression finds the modulus of the number with the same denominator and checks if it is greater than 0 or not. If the remainder is greater than 0, it adds one to the first expression, and if it is false, it adds 0 to the first expression.
An example code is given below to explain how to use simple arithmetic to round up a number in Python without importing the library.
Output:
How much Impact can Rounding Have? (Rounding vs Truncation)
The best example to show the impact of rounding is for the stock exchange market. In the past i.e in the year 1982, the Vancouver Stock Exchange (VSE): used to truncate the stock values to three decimal places on each trade.
It was done almost 3000 times every day. The accumulated truncations lead to a loss of around 25 points per month.
An example of truncating the values versus rounding is shown below.
Consider the floating-point numbers generated below as stock values. Right now I am generating it for a range of
1,000,000 seconds between 0.01 and 0.05.
Examples:
arr =
To show the impact of rounding, I have written a small piece of code wherein at first, you need to use the numbers up to only 3 decimal places, i.e. truncating the number after 3 decimal places.
I have the original total value, the total coming from truncated values and the difference between original and truncated value.
On the same set of numbers, I have been using round() method up to 3 decimal places and calculating the sum and the difference between the original value and the rounded value.
Here are the example and the output
Example 1
import random def truncate(num): return int(num * 1000) / 1000 arr = sum_num = 0 sum_truncate = 0 for i in arr: sum_num = sum_num + i sum_truncate = truncate(sum_truncate + i) print("Testing by using truncating upto 3 decimal places") print("The original sum is = ", sum_num) print("The total using truncate = ", sum_truncate) print("The difference from original - truncate = ", sum_num - sum_truncate) print("\n\n") print("Testing by using round() upto 3 decimal places") sum_num1 = 0 sum_truncate1 = 0 for i in arr: sum_num1 = sum_num1 + i sum_truncate1 = round(sum_truncate1 + i, 3) print("The original sum is =", sum_num1) print("The total using round = ", sum_truncate1) print("The difference from original - round =", sum_num1 - sum_truncate1)
Output:
Testing by using truncating upto 3 decimal places The original sum is = 29985.958619386867 The total using truncate = 29486.057 The difference from original - truncate = 499.9016193868665 Testing by using round() up to 3 decimal places The original sum is = 29985.958619386867 The total using round = 29985.912 The difference from original - round = 0.04661938686695066
The difference between original and after truncating is 499.9016193868665, and from round, it is 0.04661938686695066
The difference seems to be very big, and the example shows how to round() method helps in calculating close to accuracy.
Use the math.ceil() Function to Round Up a Number in Python 2.x
If you are using the Python 2.x version, you can use the function to round up a number correctly. The function is provided by the library of Python. So we need to import the library first. The function takes the number that needs to be rounded. It can take an expression and round the resulting number as per the results.
However, it should be noted that in Python 2.x, produces , and results in a . So we need to give one of the values in to the function to get accurate results. If both values of an expression in the function is an integer, it can produce wrong results.
An example code to illustrate the concept of how to use to round up a number in Python 2.x is given below.
Output:
32 Comments
Не правильная теория про если цифра 46.5 это не 47 а 46 это называется еще банковским округлением к ближайшему четному округляется если после запятой 5 и за ним нет никакой цифры
как округлить число 6,9?
Чтобы округлить число до целого, надо отбросить все числа, стоящие после запятой. Отбрасываем 9, поэтому предыдущее число следует увеличить на единицу. Значит, 6,9 приближенно равно семи целым.
На самом деле действительно не увеличивается цифра если после запятой 5 в любом финансовом учреждении
Гм. В таком случае финансовые учреждения в вопросах округления руководствуются не законами математики, а своими собственными соображениями.
Скажите, как округлить 46,466667. Запуталась
Если требуется округлить число до целого, то надо отбросить все цифры, стоящие после запятой. Первая из отброшенных цифр равна 4, поэтому предыдущую цифру не изменяем:
Уважаемая Светлана Ивановна. Плохо же Вы знакомы с правилами математики.
Правило. Если отбрасывается цифра 5, а за ней нет значащих цифр, то округление производится на ближайшее четное число, т. е. последняя сохраняемая цифра оставляется неизменной, если она четная, и усиливается, если она нечетная.
И Соответственно: Округляя число 0,0465 до третьего десятичного знака, пишем 0,046. Усиления не делаем, так как последняя сохраняемая цифра 6 — четная. Число 0,046 столь же близко к данному, как 0,047.
Уважаемый гость! Да будет Вам известно, в математике для округление числа существуют различные способы округления. В школе изучают один из них, состоящий в отбрасывании младших разрядов числа. Я рада за Вас, что Вы знаете другой способ, но неплохо бы не забывать и школьные знания.
Спасибо вам большое! Нужно было округлить 349,92. Получается 350. Спасибо за правило
как правильно округлить 5499,8?
Если речь об округлении до целого, то отбросить все цифры, стоящие после запятой. Отброшенная цифра — 8, следовательно, предыдущую увеличиваем на единицу. Значит, 5499,8 приближенно равно 5500 целым.
Доброго дня! А вот такой вопрос возник сейас: Есть три числа: 60.56% 11.73% и 27.71% Каким образом окрулить до целых знаечний? Чтобы в сумме то 100 осталось. Если просто округлять, то 61+12+28=101 Плучается неувязочка. (Если, как тыт писали, по «банковскому» методу — в данном случае получится, но в случае, например 60.5% и 39.5% получится опять что-то пало — 1% потеряем). Как быть?
О! помог метод от «гость 02.07.2015 12:11″ Благодарю»
Не знаю меня в школе учили так: 1.5 => 1 1.6 => 2 1.51 => 2 1.51 => 1.6
Возможно, Вас так учили.
По моему у Вас ошибочка в последнем выражении. 1.5 => 1 1.6 => 2 1.51 => 2 «1.51 => 1.5»
0, 855 до сотых помогите пожалуйста
0, 855≈0,86 (отброшена 5, предыдущую цифру увеличиваем на 1).
Округлить 2,465 до целого числа
2,465≈2 (первая отброшенная цифра — 4. Поэтому предыдущую оставляем без изменения).
Как округлить 2,4456 до целого?
2,4456 ≈ 2 (так как первая отброшенная цифра 4, предыдущую цифру оставляем без изменения).
Исходя из правил кругления: 1,45=1,5=2, следовательно 1,45=2. 1,(4)5 = 2. Так ли это?
Нет. Если требуется округлить 1,45 до целого, отбрасываем первую цифру после запятой. Поскольку это 4, предыдущую цифру не изменяем. Таким образом, 1,45≈1.
А если мне нужно округлить 103, это будет 100 или 105? (нужно округлить до 0 или 5)
Ирина, 103 — это уже целое число. Округлять до целого его не нужно. Если требуется округлить 103 до десятков, тогда 103≈100.
Источник
Встроенные функции
Для операции округления в Python есть встроенные функции – и
round
– округляет число (number) до ndigits знаков после запятой. Это стандартная функция, которая для выполнения не требует подключения модуля math.
По умолчанию операция проводится до нуля знаков – до ближайшего целого числа. Например:
Чтобы получить целый показатель, результат преобразовывают в .
Синтаксически функция вызывается двумя способами.
- – это округление числа до целого, которое расположено ближе всего. Если дробная часть равна 0,5, то округляют до ближайшего четного значения.
- – данные округляют до знаков после точки. Если округление проходит до сотых, то равен «2», если до тысячных – «3» и т.д.
int
– встроенная функция, не требующая подключения дополнительных модулей. Её функция – преобразование действительных значений к целому путем округления в сторону нуля. Например
Для положительных чисел функция аналогична функции , а для отрицательных – аналогично . Например:
Чтобы число по int преобразовать по математическим правилам, нужно выполнить следующие действия.
- Если число положительное, добавить к нему 0,5.
- Если число отрицательное, добавить -0,5.
Синтаксически преобразование оформляется так:
How to round away from zero
Python doesn’t provide a direct way to round a number away from zero as you might expect. For example:
Number | Rounding away from zero |
---|---|
1.2 | 1 |
1.5 | 2 |
A common way to round a number away from zero is to use the following expression:
This expression works correctly for positive numbers. For example:
Output:
However, it doesn’t work for the negative numbers:
Output:
For negative numbers, you should subtract 0.5 instead of adding it.
The following example works properly for the negative numbers:
The following defines a helper function that rounds up a number:
The Python module provides you with a function called :
The function returns the absolute value of but the sign of .
And you can use this function to develop a function without checking whether is positive or negative: