Функция round() в Python, округляет числа

Функция round() - одна из самых полезных встроенных функций языка Python. Она позволяет легко и быстро округлять числа с плавающей точкой до нужной точности. В этой статье мы подробно разберем, как именно работает функция round(), рассмотрим конкретные примеры ее использования и особенности, о которых стоит знать.

Основы функции round()

Давайте начнем с синтаксиса и основных параметров функции round(). Ее синтаксис выглядит так:

round(number, ndigits)

Где:

  • number - округляемое число (целое, дробное)
  • ndigits - количество знаков после запятой для округления (по умолчанию 0)

Функция принимает любое число с плавающей точкой в качестве первого аргумента и округляет его с учетом значения второго аргумента ndigits. Давайте посмотрим, как это работает.

Начнем с простого примера без указания количества знаков после запятой. В этом случае round() округлит число до ближайшего целого:

round(3.489) -> 3

А вот если мы явно укажем ndigits, то получим округление до заданной точности. Например, до двух знаков после запятой:

round(3.489, 2) -> 3.49

Как видите, теперь число округлилось до сотых (до 3.49). А если задать ndigits=3, то будет округление уже до тысячных:

round(3.489, 3) -> 3.489

В целом, чем больше значение ndigits, тем выше точность округления. При ndigits=0 округляется до целых.

Пляж с начертанным на песке числом 2.675

Возвращаемое значение

Если мы не передаем значение ndigits, то функция round() возвращает целочисленный результат. Но если задано конкретное количество знаков после запятой, то возвращается число с плавающей точкой.

Кроме того, пользовательские типы данных в Python могут определять собственный способ округления с помощью метода __round__(). Это позволяет гибко настраивать правила округления для классов.

Особенности округления в Python

Есть одна особенность округления в round(), о которой стоит знать. При некоторых дробных значениях результат может быть неожиданным. Рассмотрим пример:

round(2.675, 2) вернет 2.67 вместо ожидаемого 2.68

Причина в том, что presentation десятичных дробей в плавающей точке не может быть абсолютно точной. Поэтому при округлении таких "неточных" значений мы получаем странный на первый взгляд результат.

Ночной город с числом -3.489

Округление отрицательных чисел

Функция round() в Python округляет как положительные, так и отрицательные числа. При этом для отрицательных чисел действуют те же правила округления, что и для положительных:

round(-3.489) -> -3

Здесь число округлилось до ближайшего целого, как и для положительных значений.

Давайте посмотрим еще пример с указанием точности округления:

round(-3.489, 2) -> -3.49

Как видим, до сотых округлилось аналогично положительному варианту.

Округление датафреймов Pandas

Часто возникает необходимость округлить числовые данные внутри датафрейма Pandas. Это можно сделать следующим образом:

import pandas as pd data = {'value': [3.141592, 5.789]} df = pd.DataFrame(data) df = df.round(2)

Здесь мы округлили столбец value датафрейма df до 2 знаков после запятой с помощью метода round() объекта df.

Округление dateTime объектов

Функция round() также может округлять объекты даты и времени. Например, округлить datetime до секунд:

from datetime import datetime dt = datetime(2023, 2, 15, 18, 31, 42, 1055) dt_rounded = round(dt, 0)

В переменной dt_rounded будет храниться дата со временем округленным до секунд (без миллисекунд).

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.