Çözüldü Python ondalık bir sayıyı istediğimiz basamağa kısaltma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

deezwend

Hectopat
Katılım
28 Haziran 2021
Mesajlar
294
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
Merhaba, araştırdım fakat bulamadım o yüzden buraya konu açıyorum. Benim bir ondalık sayım var mesela "1.5164324" sayım. Ben bu sayıyı "1.51" şeklinde kısaltmak istiyorum. Biraz araştırdım ve "round" fonksiyonunu buldum fakat bu fonksiyon da sayıyı yuvarlıyor tam benim istediğim sonucu kesinlikle vermiyor. Nasıl yapabileceğim hakkında yardımcı olabilirseniz çok sevinirim. Bir de mantığı anlamam amacıyla detaylıca anlatabilirseniz nerde ne yapmam gerektiğini, gerçekten çok sevinirim. İyi günler.
 
Çözüm
stackoverflow

Python:
import math

def truncate(f, n):
    return math.trunc(f * 10 ** n) / 10 ** n

print(truncate(5.8782, 2))

Çıktı:
Kod:
5.87

Mantığı basit, aşağıdaki işlemlerden anlarsın:
Kod:
Sayı: 5.8782
"."dan sonra istediğin basamak sayısı: 2

5.8782 * (10^2) = 587.82
math.trunc(587.82) = 587
587 / (10^2) = 5.87
Bunu da denedim bu da yuvarladı sayıyı maalesef. Ben de şöyle bir çözüm buldum bu forumda:
Python:
sayi = 55.51677124
sayi = str(sayi) # nokta ayırma işlemi için split kullanacağım bu yüzden string yaptım

x = len(sayi.split(".")[0]) #burada sayıyı noktadan itibaren oluşturuyor ve liste oluşturuyor ilk indeks'ini aldık

y = x + 2+1 # 2 sayısı hangi basamağa kadar kırpılmasını istediğimiz sayı 1 ise normal sayıda "." olduğu için

print(float(sayi[0:y]))
Şöyle yapabilirsiniz.
Kod:
a = 10.1234
print(f"{a:.3f}")
Çıktı: 10.123
Hocam teşekkürler çalıştı bu. Fakat bu yapının ismi ne tam olarak? Youtube'dan video izleyerek öğrenmek istiyorum bunu iyice. Bir şeyin cevabını bulunca direkt üstümden atamıyorum kafamdaki soru işaretlerini maalesef.
 

Technopat Haberler

Geri
Yukarı