Kerekítsen egy értéket a Python -ban, hívássalmath.ceil()- Mindig a legkisebb egész egész számot adja vissza, mint a bemenet (a +∞ felé), ami azt jelenti, hogy megbízhatóan „felkerekít” mind a pozitív, mind a negatív számok esetében.
1. módszer: Használja a Math.ceil -t egyetlen számhoz
1. lépés:Importálja a matematikai modult.
import math2. lépés:Hívásmath.ceil(value)hogy felkerüljenek.
print(math.ceil(4.2)) # 5
print(math.ceil(-1.2)) # -1 (toward +∞)3. lépés:EldobintCsak akkor, ha kifejezetten szüksége van egy egész számra (Python 3 -osceilMár visszatérint).
n = math.ceil(2.3) # int 3
2. módszer: Kerekítse fel az N tizedes helyre egy méretarányt
Szorozzuk meg a tizedes tételéhez, alkalmazzaceil, majd ossza vissza. Ez a minta gyors a felhasználói felület kerekítéséhez vagy a vödör küszöbéhez.
1. lépés:Válasszon egy szorzót, mint10 ** decimals-
import math
def round_up(n, decimals=0):
m = 10 ** decimals
return math.ceil(n * m) / m2. lépés:Hívja a segítőt, hogy kerekítse a pontosságát.
print(round_up(2.341, 2)) # 2.35
print(round_up(22.45, -1)) # 30.0 (round up to tens)3. lépés:Vigyázzon a lebegőpontos tárgyakra; Ha pénzszint pontosságra van szükség, használjaDecimal(Következő módszer).
3. módszer: Használja a decimációt a pontos, szabályalapú „kerekítés” esetén
A pénzügyi vagy megfelelési szabályokhoz (pl. „Mindig kerekítsen a nullától” vagy a „felé a +∞”) használja a Python decimális értékét, amely támogatja a pontos tizedes számítási és explicit kerekítési módokat.
1. lépés:FelépítDecimala húrokból származó értékek a bináris úszó pontatlanság elkerülése érdekében.
from decimal import Decimal, ROUND_UP, ROUND_CEILING
d = Decimal("2.341")2. lépés:Hívásquantizecélkitűzéssel és a szükséges kerekítési móddal.
# ROUND_UP: always away from zero (2 decimals)
print(d.quantize(Decimal("0.01"), rounding=ROUND_UP)) # 2.35
# ROUND_CEILING: always toward +∞ (handles negatives differently)
print(Decimal("-2.341").quantize(Decimal("0.01"), rounding=ROUND_CEILING)) # -2.343. lépés:Válassza ki azt a módot, amely megfelel az Ön házirendjének.ROUND_UP„távol van a nullától”;ROUND_CEILING„felfelé” a +∞ felé, ami a negatívok esetében különbözik.
4. módszer: Do egész számú „mennyezeti osztály” (számok, oldalak, tételek)
Ha azt akarja, hogy „hány teljes B méretű darabot fedjen le a?”, Használjon egész szám mennyezeti osztályt. Ez elkerüli az úszókat, a feltételeket és az importot.
1. lépés:Használja a kettős negatív trükköt a padlóosztással.
# Works for integers; assumes positive divisor
def ceil_div(a, b):
return -(-a // b)
print(ceil_div(21, 5)) # 5
print(ceil_div(20, 5)) # 42. lépés:Inkább ezt részesítse előnyben, ha az elemeket oldalakra, tételekre vagy sorokra osztja.
3. lépés:Ha mindkettőaésbnem negatívak,(a + b - 1) // bszintén működik; A kettős kiosztási forma tisztán az egész számtáblák szélesebb körét kezeli.
5. módszer: kerekítse fel a tömböket numpy -vel
Vektorok vagy mátrixok esetén alkalmazza a vektorizált kerekítéstnumpy.ceil()hogy mennyezetet kapjon.
1. lépés:Konvertálja adatait Numpy tömbre.
import numpy as np
arr = np.array([3.14, 2.72, -0.1])2. lépés:Hívásnp.ceil(arr)az összes elem kerekítéséhez.
print(np.ceil(arr)) # [ 4. 3. -0.]3. lépés:Szükség esetén az egész számra dobja.
Olvassa el még:Az Xbox Division állítólag az elbocsátások újabb fordulója előtt áll a pénzügyi év vége előtt
print(np.ceil(arr).astype(int)) # [ 4 3 0]FYI: Miértround()nem a „kerekítés”
A beépítettround()Félig egyenletes (bankár kerekítés). Ez minimalizálja a torzítást sok értéken, de nem mindig kerekít (pl.round(2.5)→2). Használja a fenti módszereket, amikor szabály szerint kell kerekítenie.
Választmath.ceilGyors egyetlen értékek esetén a skála és a kaszképi minta vagyDecimalKonkrét tizedesjegyekhez és pénzügyi szabályokhoz, az egész mennyezeti osztály a számláláshoz és a tömböknél. Ez a kerekítést kifejezetten, kiszámíthatónak és helyesnek tartja a kéznél lévő feladathoz.












