目次
- 1 1. Pangunahing gamit ng function na round() ng Python
- 2 2. Paraan ng Pag-ikot ng Python: “Banker’s Rounding”
- 3 3. Mga Problema sa Floating-Point Numbers
- 4 4. Para mapanatili ang katumpakan ng decimal na module
- 5 5. Ibang mga paraan ng pag-ikot: math.floor() at math.ceil()
- 6 6. Praktikal na Mga Halimbawa ng Pag-aaplay
- 7 7. Buod
1. Pangunahing gamit ng function na round()
ng Python
Pangkalahatang-ideya ng function na round()
Ang function na round()
ng Python ay isang pangunahing function para i-round off ang mga numero. Pangunahing ginagamit ito upang tukuyin ang bilang ng mga decimal place at i-round ang mga numero. Sa ganitong paraan, maaaring mapadali ang pagpapakita ng data at pag-aayos ng mga resulta ng kalkulasyon.Pangunahing syntax
round(number[, ndigits])
- number: Ang numerong i-round.
- ndigits: Bilang ng mga decimal place (opsyonal). Kung hindi ibibigay, i-round sa integer.
Halimbawa ng paggamit
print(round(3.14159)) # Resulta: 3
print(round(3.14159, 2)) # Resulta: 3.14
print(round(1.5)) # Resulta: 2
Sa ganitong paraan, ang function na round()
ay maaaring i-round ayon sa tinukoy na bilang ng mga decimal place, at kung hindi ibibigay ang ndigits
, i-round ito sa integer.2. Paraan ng Pag-ikot ng Python: “Banker’s Rounding”
Ano ang Banker’s Rounding?
Anground()
ng Python ay gumagamit ng tinatawag na “Banker’s Rounding”. Ito ay paraan ng pag-round sa pinakamalapit na pares na numero kapag ang decimal ay 0.5. Halimbawa, ang 2.5
ay i-round sa 2
, at ang 3.5
ay i-round sa 4
. Ginagamit ang pamamaraang ito sa estadistika at pinansyal na kalkulasyon upang maiwasan ang bias sa data.Halimbawa ng Banker’s Rounding
print(round(2.5)) # resulta: 2
print(round(3.5)) # resulta: 4
Sa ganitong paraan, ang Banker’s Rounding ay nagra-round sa pares na numero kapag ang decimal ay 0.5, kaya napipigilan ang pag-accumulate ng error.Mga Benepisyo ng Banker’s Rounding
Ang pamamaraang ito ay makakabawas ng pag-accumulate ng error na dulot ng simpleng pag-round up o down. Lalo na kapag nagpoproseso ng malaking dami ng data, nakakatulong ito upang mapanatili ang balanse ng kabuuang data.3. Mga Problema sa Floating-Point Numbers
Internal na Representasyon at Pagkakamali ng Floating-Point Numbers
Sa Python, ang mga floating-point number ay kinakatawan sa binary. Dahil dito, maaaring hindi eksaktong maipakita ang mga decimal na numero, at maaaring makakuha ng hindi inaasahang resulta sa pag-round. Lalo na kapag ang numero ay hindi maaaring maipakita nang eksakto sa loob, ang resulta ng function naround()
ay maaaring hindi ayon sa inaasahan.Halimbawa ng mga Problema sa Floating-Point Numbers
n = 3.15
print(round(n, 1)) # Resulta: 3.1 (Inaasahan ay 3.2)
Sa halimbawang ito, ang 3.15
ay kinakatawan sa loob bilang 3.149999...
, kaya hindi nakukuha ang inaasahang resulta. Ito ay dahil sa limitasyon ng floating-point numbers.Mga Dahilan kung Bakit Nagkakaroon ng Error ang Floating-Point Numbers
Ang floating-point numbers ay kinakatawan sa binary, kaya ang mga numerong tulad ng 1.15 at 3.15 ay hindi maaaring maipakita nang eksakto. Dahil dito, nagkakaroon ng error kapag nagra-round. Upang maiwasan ang problemang ito, inirerekomenda na gumamit ng mataas na precision na pagproseso ng numero tulad ngdecimal
module na ipapaliwanag sa susunod.4. Para mapanatili ang katumpakan ng decimal
na module
Pangkalahatang-ideya ng decimal
na module
Sa pamamagitan ng paggamit ng decimal
na module, maiiwasan ang mga error ng floating-point at makakagawa ng mga kalkulasyong may mataas na katumpakan. Lalo na ito ay kapaki-pakinabang kapag kinakailangan ang tumpak na resulta sa mga pinansyal na kalkulasyon o siyentipikong kalkulasyon.Halimbawa ng paggamit
from decimal import Decimal, ROUND_HALF_UP
n = Decimal('3.15')
print(n.quantize(Decimal('0.1'), rounding=ROUND_HALF_UP)) # Result: 3.2
Ginagamit ang klase na Decimal
upang maiwasan ang mga error ng floating-point at magsagawa ng mga kalkulasyong may mataas na katumpakan. Ang ROUND_HALF_UP
ay gumagana katulad ng karaniwang pag-ikot.Iba pang mga mode ng pag-ikot
decimal
na module ay may iba’t ibang mga mode ng pag-ikot. Halimbawa:- ROUND_DOWN: Laging pinaputol pababa.
- ROUND_CEILING: Ang mga positibong numero ay pinapataas, ang mga negatibong numero ay pinaputol pababa.
- ROUND_FLOOR: Laging nagro-round pababa (kasama ang mga negatibong numero).
5. Ibang mga paraan ng pag-ikot: math.floor()
at math.ceil()
math.floor()
: Pagpuputol
math.floor()
ay isang function na nagtatanggal ng mga decimal at nagro-round sa pinakamalapit na integer. Sa mga negatibong numero, ito ay nagro-round pababa.import math
print(math.floor(3.9)) # Resulta: 3
math.ceil()
: Pag-angat
Samantala, math.ceil()
ay isang function na palaging nagra-round pataas ng mga decimal.import math
print(math.ceil(3.1)) # Resulta: 4
Pagkakaiba sa round()
round()
ay nagro-round sa pinakamalapit na integer, samantalang ang math.floor()
at math.ceil()
ay palaging nagro-round sa isang direksyon, kaya mas madaling hulaan ang resulta. Kung kailangan ng eksaktong pag-round para sa mga negatibong numero, epektibo ang mga function na ito.
6. Praktikal na Mga Halimbawa ng Pag-aaplay
Pag-aaplay sa Pagkalkula ng Pera
Sa pagkalkula ng pera, kinakailangan ang mataas na katumpakan. Halimbawa, kung gagamitin angdecimal
na module para sa pagkalkula ng kabuuang halaga o diskwento, makakakuha ng eksaktong halaga.from decimal import Decimal, ROUND_HALF_UP
price = Decimal('19.995')
print(price.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)) # Resulta: 20.00
Pag-aaplay sa Siyentipikong Kalkulasyon
Sa siyentipikong kalkulasyon, nagiging problema ang error ng floating-point numbers, kaya mahalaga ang paggamit ngdecimal
na module para sa eksaktong kalkulasyon. Nakakatulong ito upang mapanatili ang katumpakan ng mga resulta ng pagsukat at datos ng eksperimento.Pag-aaplay sa Data Analysis
Sa data analysis, kailangan ding i-round nang tama ang mga numero upang hindi mag-ipon ang error. Sa pag-aggregate ng estadistikal na datos o malalaking datos, ang tamang paggamit ngdecimal
at round()
ay makakakuha ng eksaktong resulta.7. Buod
Anground()
function ng Python ay isang maginhawang tool para madaling i-round ang mga decimal, ngunit kailangan mag-ingat lalo na sa mga error ng floating-point numbers. Sa mga sitwasyon kung saan kinakailangan ang pinansyal na kalkulasyon o siyentipikong katumpakan, mahalagang gamitin ang decimal
module upang mapataas ang precision ng pag-round. Bukod dito, mahalagang maunawaan ang iba pang mga paraan ng pag-round tulad ng math.floor()
at math.ceil()
, at gamitin ang mga ito ayon sa pangangailangan upang magkaroon ng flexible na pagproseso ng mga numero.