0.194117 gibi float bir değeri nasıl 0.2 ye yuvarlayabilirim

Başlıkta da belirttiğim gibi 0.45451 gibi küsüratlı bir sayıyı nasıl 0.5 e yuvarlayabilirim

round fonksiyonunu kullanabilirsin.

a = 0.45515
print(round(a,1)) 

Bir soru daha sorsam 4.23 olduğu zaman 4 e yuvarlıyor ya bunu 4.3 e yuvarlamanın bir yolu var mı

def çakmaRoundFonksiyonu(sayı):
    if type(sayı) is not float:
        print("Yalnızca Ondalık sayı girilebilir")
    else:
        sayı = str(sayı)
        ondalık_kısım = [j for j in sayı.split(".")]
        t = int(ondalık_kısım[1])
        virgülden_sonraki_her_rakam = [int(ondalık_kısım[1][i]) for i in range(len(ondalık_kısım[1]))]
        virgülden_sonraki_her_rakam.reverse()
        fark = 10 - int(virgülden_sonraki_her_rakam[0])
        if fark <= 5:
            t += fark
        else:
            t = 0 # 3 ile değiştirirseniz amacınıza ulaşırsınız.
        print(f"{ondalık_kısım[0]}.{t}")
çakmaRoundFonksiyonu(4.23) # benim yaptığım
round(4.23) # sevgili yılanın verdiği

Yalnızca tek bir basamak olarak işlem yapıyor bilginiz olsun. Sondan 2 basamağı yuvarlama gibi bir derdiniz varsa bu yazdığım kodu belki komple değiştirmeniz belki de biraz oynamanız gerekebilir.

4 Beğeni

ceil yukarı yuvarlar senin ihtiyacın olan hangisi ise onu kullan round da olabilir.


print(math.ceil(4.23))  # 5
print(math.ceil(4.23 * 10)/10) # 4.3


def rond_float(float_num, resolution):
    resolution_num = resolution * 10
    rounded = float_num * resolution_num 
    return  math.ceil(rounded)  / resolution_num 
3 Beğeni

a = 0.194177
b = 0.2 - a
c = a + b

c burada 0.2 olur

python - Round float to x decimals? - Stack Overflow

In [23]: round(66.66666666666,4)
Out[23]: 66.6667

In [24]: round(1.29578293,6)
Out[24]: 1.295783

Yarar ve zararlarına dair farklı açıklamalar da linkte mevcut.

1 Beğeni