تک ویت امید

نحوه کار فانکشن round() در پایتون

فانکشن round() یکی از builtin function های خود پایتون و برای استفاده از اون نیازی به import کردن هیچ پکیجی نداریم و میتونیم ازش برای رند کردن استفاده کنیم و نحوه‌ی استفاده کلیش به این صورته:

number = 111.23
rounded_number = round(number)
print(rounded_number)

و خروجی زیر رو به ما میده:

111

و سینتکس کلی به این شکله:

Syntax : round(number, number of digits)

Parameters : 

number : number to be rounded
number of digits (Optional) : number of digits up to which the given number is to be rounded.

اگه میخواید بیشتر درمورد round() بدونید پیشنهاد میکنم یه نگاهی به اینجا بندازید.

چیزی که میخوام ازش صحبت کنم چیز جالبی بود که باهاش برخورد کردم. این مثال رو یه نگاهی بهش بندازید:

round(1.5)
# output: 2
round(2.5)
# output: 2
round(3.5)
# output: 4

چیز جالبی که اینجا هست اینکه پایتون داره برامون ۱.۵ رو به ۲ رند میکنه و همچنین ۲.۵ رو به ۲ ولی انتظاری که ما داریم اینکه ۲.۵ رو به عدد ۳ رند کنه!!!!

بعد از یکمی تحقیق فهمیدم که دلیل این اتفاق پدیده‌ای به اسم Round Half to Even یا Bankers Rounding هستش یعنی اینکه عدد رو به نزدیک ترین عدد صحیح زوج رند میکنه. دلیل برتری این روش نسبت به Round Half Up (روش مرسوم رند کردن) جلوگیری از سوگیری محاسباتی موقع رند کردن عدد هستش.

این روش در مقیاس اعداد بزرگ و تعداد زیاد چون دقت بیشتری داره از این روش استفاده میشه و به همین دلیله که پایتون و تعداد زیادی از زبان های برنامه نویسی دیگه از این روش استفاده میکنن.