что такое round в python

Округление в Python — round, int, модуль math

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

Встроенные функции

Для операции округления в Python есть встроенные функции — round() и int()

round

round(number[, ndigits]) — округляет число (number) до ndigits знаков после запятой. Это стандартная функция, которая для выполнения не требует подключения модуля math.

По умолчанию операция проводится до нуля знаков — до ближайшего целого числа. Например:

round(3.5) > 4 round(3.75, 1) > 3.8

Синтаксически функция вызывается двумя способами.

int — встроенная функция, не требующая подключения дополнительных модулей. Её функция — преобразование действительных значений к целому путем округления в сторону нуля. Например:

import math math.floor(3.999) > 3 math.ceil(3.999) > 4

💡 Чтобы число по int преобразовать по математическим правилам, нужно выполнить следующие действия.

Синтаксически преобразование оформляется так:

Функции из библиотеки Math

Модуль необходим в Python. Он предоставляет пользователю широкий функционал работы с числами. Для обработки алгоритмов сначала проводят импорт модуля.

math.ceil

Функция получила название от английского слова » ceiling » — » потолок «

Функция преобразовывает значение в большую сторону (вверх). Этот термин применяется и в математике. Он означает число, которое равно или больше заданного.

Любая дробь находится между двумя целыми числами. Например, 2.3 лежит между 2 и 3. Функция ceil() определяет большую сторону и возводит к нему результат преобразования. Например:

import math math.ceil(3.25) > 4

Алгоритм определяет большую границу интервала с учетом знака:

math.floor

Функция получила название от английского слова » floor » — » пол «

math.floor() действует противоположно math.ceil() — округляет дробное значение до ближайшего целого, которое меньше или равно исходному. Округление происходит в меньшую сторону (вниз):

При округлении учитывается знак перед данными.

math.trunc

Функция получила название от английского слова » truncate » — » урезать «

Функция характеризуется отбрасыванием дробной части. После преобразования получается целое значение без учета дроби. Такой алгоритм не является округлением в арифметическом смысле. В Пайтон просто игнорируется дробь независимо от ее значения:

💡 Избавиться от дроби можно без подключения модуля. Для этого есть стандартная функция int Она преобразовывает дробные числа в целые путем игнорирования дроби.

Различие округления в Python 2 и Python 3

В Python 2 и Python 3 реализованы разные принципы округления.

В Python 2 используется арифметическое округление. В нем наблюдается большое количество погрешностей, что приводит к неточностям в процессе вычислений.

Во втором Python есть только 4 цифры, которые ведут к преобразованию к меньшему значению — 1, 2, 3 и 4. Также 5 цифр, которые приводят к большему значению — 5, 6, 7, 8, 9. Такое неравное распределение ведет к тому, что погрешность постоянно нарастает.

Python 2 по правилам арифметического округления преобразует число 5,685 в 5,68 до второго знака. Такая погрешность связана с тем, что десятичные цифры float в двоичном коде невозможно корректно представить.

В Python 3 используются принципы банковского округления. Это означает, что преобразование производится к ближайшему четному. В таком случае также не удается полностью избежать возникающих ошибок, но программисты добиваются точности в подсчетах.

2,5 по правилам банковского преобразования будет равно 2, а 3,5 = 4 (значения возводятся к близкому четному). Минимизировать погрешности можно благодаря практически равной вероятности, что перед пятеркой будет четное или нечетное число.

Источник

Функция round() в Python на примерах. Для начинающих программистов

Округление числа – одна из самых популярных арифметический операций. В Python есть встроенная функция, позволяющая выполнять эту операцию. С ее помощью пользователь может самостоятельно регулировать шаг округления или же сразу выполнять эту операцию до ближайшего целого числа. Эта функция также используется для округления чисел с плавающей точкой. Она имеет простой синтаксис, и поэтому новичку разобраться в том, как ее использовать, не составит труда.

Где применяется функция round()

Абсолютно в разных сферах, где может потребоваться округление чисел. Конечно, сейчас спектр использования несколько уменьшился, поскольку округление снижает точность вычислений, и в этом теперь нет никакой необходимости. Тем не менее, округление используется для повышения удобства чтения. Поэтому там, где нужно отображать «красивые» цифры, эта функция по-прежнему применяется.

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

Очень просто этот эффект выразить на примере всем известного эффекта бабочки. Метафорически он выражается так: взмах крыла бабочки на одном конце света может привести к торнадо в совсем другой части земного шара. Дело в том, что большинство сложных систем в мире являются по своей природе нелинейными. То же касается и компьютерных программ со сложными алгоритмами. Одна малейшая ошибка в вычислениях может привести к нарушению работоспособности приложения или полному отказу от работы.

К слову, эффект бабочки был открыт Эдвардом Лоренцом, который был метеорологом, что не помешало ему полностью изменить представления о математике. Одним обычным скучным деньком он сидел и работал, пытаясь предсказать погоду. Правда, его работа была не сильно сложной на первый взгляд. Ему нужно было ввести начальные переменные, а дальше компьютерная модель уже составляла прогноз. Но этот расчет был ключевым, поскольку результаты вычислений использовались в дальнейших.

В один момент он захотел повторить в середине этой цепочки изначальные расчеты. И, что его удивило, они не сошлись. Он начал думать, и понял, что проблема крылась в том, что он округлял ключевые параметры до трех знаков после запятой. На самом деле, разница между этими значениями была микроскопическая – 0,000127. Но вот прогнозы получались различными.

Первые вычисления в цепочке, в целом, полностью соответствовали друг другу. А вот по мере выполнения дальнейших расчетов расхождение становилось все больше. В конце концов, разница была следующей: спокойная погода с солнышком и сильные грозы.

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

А эффект бабочки – это просто красивая метафора, которая наглядно демонстрирует то, насколько незначительное округление может все испортить.

Следовательно, применять функцию round() необходимо осторожно, не увлекаясь округлением чисел. Чем больше времени проходит с момента первого вычисления (или чем больше действий в компьютерном алгоритме), тем сильнее погрешность.

То есть, чисто теоретически, если вы пишете программу для анализа фондового рынка, то округление может привести к тому, что будет крах акций. Маловероятно, скажете? А кризис 2008 года произошел из-за того, что множество маловероятных событий сошлись вместе.

Наглядно продемонстрировать эффект бабочки можно и на пандемии. Об этом сейчас очень много говорят. Съел человек летучую мышь, и во всем мире начали умирать сотни тысяч людей. И хотя ученые в последнее время опровергли этот факт, но любая эпидемия развивается с единичного случая заражения. Причем ее рост экспоненциальный. И для прогнозирования вероятности прогрессирования пандемии вообще опасно использовать округление.

Собственно, именно по этой причине округление стало использоваться преимущественно для презентации результатов вычислений человеку. Ведь просто неудобно читать числа формата 3,656678587587. Значительно проще изобразить число 3,66, и все.

Поэтому знать, как округлять числа в Python, все же нужно.

Синтаксис функции round() в Python

Синтаксис у этой функции предельно прост. В качестве первого аргумента используется число с плавающей точкой. Это и есть то значение, которое необходимо округлить. Второй аргумент – это разряд числа, до которого необходимо осуществить округление дробного числа. При этом данное значение указывать вовсе не обязательно.

Если не вводить разрядность, до которой необходимо произвести округление, то оно будет осуществлено до ближайшего целого. Соответственно, и возвращаться будет число без каких-либо цифр после запятой.

Функция работает исключительно с числами с плавающей точкой.

Основные правила

Работает функция в соответствии с теми правилами, которым нас учили еще в школе:

Но и здесь есть нюанс. В Python используется банковское округление, когда округление осуществляется к ближайшему четному. Но иногда округление происходит по описанным выше правилам. Все потому, что в Python есть проблемы с точностью чисел с плавающей точкой, и в некоторых случаях округление будет осуществляться в большую сторону, а иногда – в меньшую.

А теперь давайте приступим непосредственно к рассмотрению примеров использования этой функции на практике.

Примеры работы функции round() в Python

Принцип работы функции прост, и его легко понять даже человеку, который никогда не изучал программирование. Все дело в том, что нам еще в школе рассказывали, как производится округление, поэтому каждый пользователь понимает, что в итоге должен получить после выполнения этой операции. Знает он и алгоритм. В общем, приступаем непосредственно к примерам.

Пример №1 (один параметр)

Давайте представим, что нам надо округлить два десятичных числа – 21,7 и 21,4.

После этого на строку вывода пойдут числа 22 и 21. Почему? Потому что после запятой стоит в первом случае число 7, и округление происходит в большую сторону, а во втором – число 4, и число округляется в меньшую.

Здесь мы использовали только один параметр функции. А как же работает округление чисел с большим количеством знаков после запятой до нужного нам разряда?

Пример №2 (оба параметра)

Допустим, у нас есть два числа. Первое – это 5,476. После округления до второго знака после запятой оно станет 5,48. Второе же число, которое нам нужно округлить – это 5,473. После того, как оно будет использоваться в качестве аргумента функции round() с округлением до второго знака после запятой, на выходе получится число 5,47.

# когда последняя цифра >=5

# когда последняя цифра меньше 5

Практические примеры

Итак, мы уже рассмотрели обобщенные примеры, которые наглядно демонстрируют работу функции. Тем не менее, для полноценного погружения в тему недостаточно реальных примеров из практики. Какие есть особые случаи, которые следует учитывать при использовании функции round()? Есть некоторые нюансы.

Пример №1 – функция round() при работе с дробями

Функция round () может работать не только с десятичными дробями, но и обычными. Большая их проблема – нередко цифр после точки так много, что число становится нечитаемым. При том, что реальной необходимости в том, чтобы было такое большое количество знаков, нет.

При использовании функции нередко появляются такие ситуации, которые изначально могут показаться багом, но когда понять логику интерпретатора, то все становится более понятно.

Так, если использовать функцию round применительно к числу 3.675 и округлением до 2 разряда после запятой, то возвращаемое значение будет 3,67, а не 3,68, как могло бы показаться на первый взгляд.

А вот если использовать дробное значение 1/6, то после округления оно превратится в 0,17, хотя без него это будет 0,1(6).

Пример №2 – исключения и ошибки

С помощью функции round можно округлить до 2 как непосредственно 2, так и 2,5, так и 1,5. Этот момент также стоит учитывать, поскольку часто новички не понимают, как работает эта функция и пытаются исправлять несуществующие баги.

Сокращение

Округление можно использовать не только для того, чтобы сделать вид числа более красивым, или совершать операции с дробными числами с меньшим количеством знаков после запятой. Оно также применяется для уменьшения общего количества элементов в числе. Для этого необходимо использовать во втором аргументе отрицательное число.

Например, эта функция вернет число 600.

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

Типичный пример – эффект бабочки, который уже стал именем нарицательным. Он проявляет себя во всех сферах, причем не только в науке, а, например, на финансовых рынках.

Источник

Функция round в Python на примерах

Round – это пример встроенной функции Python . Она предназначена для округления числа типа float до заданного пользователем разряда. Если его не указать, вернется ближайшее целое число, что аналогично указанию разряда 0. Собственно, эта цифра и стоит по умолчанию.

С помощью функции round мы можем «улучшать» дробные числа. Это означает, что они округляются в большую сторону. Например, если попробовать округлить до самого ближнего целочисленного числа значение 4,5, то на выходе мы получим 5. А если округлить 3,74, то на выходе будет 3,7. Одним словом, в соответствии с математическими законами. Таким образом, с помощью этой функции можно быстро округлить значение.

Функция round() – использование

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

Вообще, задача функции – сделать число более читаемым. Поэтому она используется сейчас в тех ситуациях, когда надо показывать «красивые» числа. Для реальных вычислений функцию лучше не использовать, так, как искажения в вычислениях при их большом количестве могут быть колоссальными.

Многие слышали об эффекте бабочки. Если выражать его в метафорической форме, то он звучит следующим образом: если на одном конце света бабочка взмахивает крыльями, в другой стороне планеты из-за этого возникнет ураган. Почему так? Потому что подавляющее количество систем, существующих в мире, нелинейные. И это же правило касается современных компьютерных приложений.

К слову, этот эффект был открыт Эдвардом Лоренцом. Он и не был математиком вовсе, но по роду его деятельности ему повезло сделать такое открытие. Он помог полностью перевернуть понимание того, как устроена эта наука. Когда-то он пытался создать прогноз погоды. Та задача, которая перед ним стояла, не была трудной. Необходимо было предоставить вводные данные, а дальше математическая модель на компьютере уже должна была сама прогнозировать погоду. Но в самой модели результаты одних вычислений использовались и дальше. И в этом была основная проблема.

В один момент ему захотелось повторить изначальные расчеты в этой цепочке. И оказалось, что они не сошлись. Он упорно пытался найти решение проблемы. Причина была в том, что Лоренц округлял значения до трех знаков после запятой. Вообще, разница между округленным значением и реальным, была очень маленькая. Тем не менее, прогнозы стали принципиально отличаться друг от друга.

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

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

К слову, человек часто недооценивает малые числа, но практика показывает, что они в совокупности могут привести к катастрофическим последствиям. Так, в 2008 году произошло то, что казалось невозможным: целая совокупность маловероятных событий сошлись в одной точке во времени. Да и пандемия, которая сейчас, началась с одного случая заражения. Так что нужно следить за точностью вычислений.

Синтаксис

Синтаксис функции round() следующий:

round(float_number, number_of_decimals)

А теперь расшифруем параметры, используемые здесь:

Как говорилось выше, если отсутствует указание конкретного количества цифр, там по умолчанию ставится ноль. В этом случае округление осуществляется до ближайшего целого, а назад возвращается также целочисленное значение.

Эта функция работает по таким правилам:

Функция round в Python– примеры работы

Пример 1 – использование одного параметра в функции

В выводе окажутся следующие значения:

Следующий блок – это демонстрация работы функции с десятичными числами. Сначала мы создали две переменные b и c, после чего дали команду напечатать их округленное значение. Соответственно, получились значения 12, 22 и 21, согласно всем описанным выше законам.

Пример 2 – оба параметра

А теперь давайте рассмотрим такой вариант кода и разберем его составляющие.

В каждом из вариантов использования функции round() мы использовали два параметра – название переменной, значение которой нужно округлить и разряд. Во всех случаях мы округляли до сотых. Следовательно, использовали цифру 2.

А дальше функция работает по всем описанным выше законам.

В первом примере мы показали, как работает функция, когда последняя цифра – 5. Во втором – если она больше пяти, а в третьем – если меньше 5. Видим, что в первом случае округление произошло в меньшую сторону, во втором – в большую, а в третьем – в меньшую.

Практика

А теперь давайте разберем некоторые ситуации, когда эта функция может понадобиться на практике и ряд нюансов, которые при этом нужно учитывать.

Пример 1 – использование функции round для работы с дробями

А теперь код для наглядности.

Пример 2 – исключения и ошибки

Удивительно то, что это даже багом не нужно считать. Это нормальное поведение функции.

Этот фрагмент кода наглядно демонстрирует, как на практике работает эта функция.

Использование функции round() для сокращения

В каких случаях может понадобиться сокращение? Например, если необходимо уменьшить размер элементов. Это – наиболее простой вариант, как производится округление до определенного знака. Для чисел больше нуля округление осуществляется до ближайшего целого в меньшую сторону. Если сокращается отрицательное, то в большую.

Выводы

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

На практике, эта функция используется исключительно для отображения чисел. Ведь вычислительные мощности компьютера сейчас достаточные, чтобы выполнять сложные вычисления без предварительного округления. Более того, округлять числа для сложных вычислений ни в коем случае нельзя.

Источник

Использование Python Round ()

Функция Python Rounl () очень полезна, когда мы хотим выполнить операцию округления.

Использование Python Round ()

Python раунд () Функция очень полезна, когда мы хотим выполнить операцию округления.

Часто вы захотете быстро оценить ценность, закругление или уменьшающие длительные дебилицы с плавающей точкой. раунд () особенно выгодно в этом случае.

Давайте посмотрим, как мы можем использовать его вместе с некоторыми примерами!

Синтаксис функции Python Rounl ()

Функция очень проста. Требуется номер и выводит желаемое закругленное число.

Здесь нам нужно раунд Num Итак, мы передаем это на раунд () Отказ Мы также можем указать точность округления, используя ndigits Отказ Это гарантирует, что номер будет округлен до ndigits точность после десятичной точки.

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

Кроме того, если номер имеет форму X.5 Затем значения будут округлены, если значение раунда является четным числом. В противном случае он будет округлен.

Например, 2,5 будут округлены до 2, так как 2 – ближайший четный номер, а 3.5 будет округлен до 4.

С этим покрытым, давайте посмотрим на некоторые примеры:

Примеры питона раунда ()

Есть некоторые случаи, чтобы рассмотреть, поэтому давайте пойдем об этом один за другим.

1. целочисленное округление

Приведенный ниже фрагмент показывает, как мы можем круглые числа до ближайшего целого числа.

2. Округление до даже стороны

Как упоминалось ранее, если и четные, так и странные стороны одинаково близки к числу ( X.5 ), то округление произойдет с честью.

3. округление с

Если ndigit Аргумент не указан (или None ), округление произойдет с ближайшим целым числом.

4. Округление с NDIGIT ndigit аргумент Это начнет округление слева от десятичной точки!

Аномалии на округление с плавающими точками

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

Рассмотрим следующий блок, где результаты могут быть удивительными:

Давайте посмотрим на несколько примеров:

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

Использование Python Round () на пользовательских объектах

Python раунд () Метод внутренне называет __round __ () метод дудин.

Мы можем переопределить этот метод, если мы создаем пользовательский Класс Отказ Поэтому любой звонок раунд () На нашем объекте вместо этого перейдет этот переопределенный метод.

Давайте посмотрим на создание нашего собственного пользовательского рода!

Как вы можете видеть, мы смогли реализовать нашу собственную функцию округления для MyClass объект!

Заключение

В этой статье мы узнали об использовании раунд () Функция в Python, используя различные примеры.

Источник

Округление чисел в Python

Использование компьютера для выполнения довольно сложной математики-одна из причин, по которой эта машина была первоначально разработана. До тех пор, пока целые числа и сложения, вычитания и умножения участвуют исключительно в вычислениях, все в порядке. Как только в игру вступают числа с плавающей запятой или дроби, а также деления, это чрезвычайно усложняет все дело.

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

В нашей повседневной жизни мы используем десятичную систему счисления, основанную на числе 10. Компьютер использует двоичную систему, которая является базой 2, и внутренне он хранит и обрабатывает значения в виде последовательности 1 и 0. Ценности, с которыми мы работаем, должны постоянно трансформироваться между этими двумя представлениями. Как описано в документации Python :

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

Такое поведение приводит к удивительным результатам в простых добавлениях, как показано здесь:

Листинг 1: Неточности с числами с плавающей запятой

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

В листинге 2 показан аналогичный случай форматирования числа с плавающей запятой для 17 знаков после запятой.

Листинг 2: Форматирование числа с плавающей запятой

Как вы, возможно, узнали из приведенных выше примеров, работа с числами с плавающей запятой немного сложна и требует дополнительных мер для достижения правильного результата и минимизации вычислительных ошибок. Округление значения может решить, по крайней мере, некоторые проблемы. Одной из возможностей является встроенная функция round () (подробнее о ее использовании см. Ниже):

Листинг 3: Расчет с округленными значениями

Для хранения таких значений в игру вступают два модуля Python decimal и fraction (см. Примеры ниже). Но сначала давайте подробнее рассмотрим термин “округление”.

Что такое Округление?

В нескольких словах процесс округления означает:

…замена [значения] другим числом, которое приблизительно равно исходному, но имеет более короткое, простое или более явное представление.

По сути, он добавляет неточность к точно рассчитанному значению, сокращая его. В большинстве случаев это делается путем удаления цифр после десятичной точки, например, от 3,73 до 3,7, от 16,67 до 16,7 или от 999,95 до 1000.

Такое сокращение делается по нескольким причинам – например, для экономии места при хранении значения или просто для удаления неиспользуемых цифр. Кроме того, устройства вывода, такие как аналоговые дисплеи или часы, могут показывать вычисленное значение только с ограниченной точностью и требуют скорректированных входных данных.

Методы округления

Математики разработали множество различных методов округления, чтобы решить проблему округления. Это включает в себя простое усечение, округление вверх, округление вниз, округление наполовину вверх, округление наполовину вниз, а также округление наполовину от нуля и округление наполовину до четного.

Например, округление наполовину от нуля применяется Европейской комиссией по экономическим и финансовым вопросам при конвертации валют в евро. Некоторые страны, такие как Швеция, Нидерланды, Новая Зеландия и Южная Африка, следуют правилу, называемому “округление наличных денег”, “округление пенни” или “шведское округление”.

[Округление денежных средств] происходит, когда минимальная единица счета меньше самого низкого физического номинала валюты. Сумма, подлежащая оплате по кассовой операции, округляется до ближайшего кратного минимальной доступной денежной единицы, в то время как операции, оплаченные другими способами, не округляются.

В Южной Африке с 2002 года округление наличных производится до ближайших 5 центов. Как правило, такого рода округление не применяется к электронным безналичным платежам.

В таблице ниже приведены практические примеры округления для этого метода:

Функции Python

Листинг 4: Округление с заданным числом цифр

Если вы вызываете эту функцию без второго параметра, то значение округляется до полного целого числа.

Листинг 5: Округление без заданного количества цифр

Округленные значения прекрасно работают в том случае, если вам не требуются абсолютно точные результаты. Имейте в виду, что сравнение округленных значений также может быть кошмаром. Это станет более очевидным в следующем примере – сравнение округленных значений, основанных на предварительном округлении, и после округления.

Первое вычисление Листинг 6 содержит предварительно округленные значения и описывает округление перед добавлением значений. Второе вычисление содержит сводку после округления, что означает округление после суммирования. Вы заметите, что результат сравнения отличается.

Листинг 6: Предварительное округление и последующее округление

Модули Python для вычислений с плавающей запятой

Модуль math сосредоточен вокруг математических констант, операций с плавающей запятой и тригонометрических методов. Модуль Numpy описывает себя как “фундаментальный пакет для научных вычислений” и известен своим разнообразием методов массива. Модуль decimal охватывает десятичную арифметику с фиксированной и плавающей точками, а модуль fractions имеет дело, в частности, с рациональными числами.

Листинг 7: Вычисления с плавающей запятой с помощью математика модуль

Листинг 8: Сравнение значений с помощью метода equal из Numpy модуль

Листинг 9: Создание десятичных чисел с помощью десятичный модуль

Теперь сравнение значений float становится намного проще и приводит к тому результату, который мы искали.

Листинг 10: Сравнение с использованием десятичный модуль

Листинг 11: Округление значения с помощью квантование()

Листинг 12: Хранение и сравнение значений с плавающей запятой в виде дробей

Кроме того, два модуля decimal и fractions могут быть объединены, как показано в следующем примере.

Листинг 13: Работа с десятичными дробями и дробями

Вывод

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

Python дает вам все необходимые инструменты и поставляется с “включенными батарейками”. Счастливого взлома!

Признание

Автор хотел бы поблагодарить Золеку Хофманн за ее критические замечания при подготовке этой статьи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *