Hei, tässä olisi kysymykseni. Olen tehnyt viiteohjelmaa, mutta enää on pienestä kiinni. Kuinka voin pyöristää esim. luvun 53 ylöspäin luvuksi 60. Tarkoitus on siis, että jos minulla on luku 53, niin minun pitäisi vähentää siitä korkeampi tasakymmenluku, eli 60. Kiitos tietäjille:-)
import math x = 53 print(int(math.ceil(x / 10.0)) * 10)
tulostaa 60.
Jakojäännös auttaa.
# Selvempi versio def seuraava_kymmen(luku): jakojäännös = luku % 10 if jakojäännös == 0: return luku else: return (luku - jakojäännös) + 10 # Lyhyempi versio def seuraava_kymmen(luku): return luku if luku % 10 == 0 else luku - luku % 10 + 10 # Tai suoraan vähennystemppu ilman seuraavan kymmenluvun etsintää: def miinus_seuraava_kymmen(luku): return -((10 - luku % 10) % 10)
Jaskan liukulukuratkaisua ei voi suositella, koska liukuluvuilla on pyöristysvirheen riski ja Pythonissa kokonaisluvut voivat olla myös suurempia kuin liukuluvut.
import math x = 20000000000000070 print(int(math.ceil(x / 10.0)) * 10) # tulostaa 20000000000000080 eli seuraavan kymmenen, vaikka oli jo tasakymmen.
Pahoittelut virheellisestä koodista. Eikö seuraava pyöristä kokonaisluvut ylöspäin lähimpään kymppiin?
x = 20000000000000070 print((x + 9) // 10 * 10) # tulostaa 20000000000000070.
Kyllä näin on. Hyvin huomattu.
Kiitos teille, hieno homma:-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.