Bir sayinin noktadan sonraki basamak sayisini belirmek icin round( ,basamaksayisi) kullaniliyor.
inputla kullanicidan alinan bir degerin (t1)sonucunu yani;
33.345789 degerini sadece 33.345 seklinde nasil yazdirilir?
print(“Alış Maliyeti:”, (t1))
print(“Alış Maliyeti:”, round(t1)) bu sekilde yazdigimda 33 ciktisini aliyorum.
print(“Alış Maliyeti:”, round(t1,4))
print(“Alış Maliyeti:”, round(t1),4)
sekillerinde yazdigimda istedigim sonucu elde edemiyorum, istedigim sonucu almak icin nasil yazmam gerekiyor.
t1=33.345789
print(“Alis Maliyeti:”, round(t1, 4))
boyle yazinca bende calisiyor cikdi olarak noktadan sonra 4 rakami basiyor round(t1, 3) yazincada noktadan sonra 3 rakami basiyor siz yazidigniz kodu tamami buraya yaza bilirmisiniz? sorun nerede?
print("hesapla\n")
while True:
try:
print("Birinci Alış")
f1 = float(input("Alış Fiyatı: ")) # fiyat1
a1 = int(input("Adet: ")) # adet1
sf1 = float(input("Şuanki Fiyat: ")) # suankifiyat1
t1 = (f1 * a1) # tutar1
print("Alış Maliyeti:", round(t1, 4))
yd1 = (sf1 - f1) / f1 * int(100) # yuzdelik degisim1
print("Yüzdelik Değişim: %", round(yd1, 2))
kz1 = (sf1 - f1) * a1 # karzarar1
print("Kar/Zarar:", round(kz1, 4),("\n"))
except ValueError:
print("Bir Sayı Giriniz.")
-
Satırın sizde çalışıyor olması bende çalışmıyor olmasının sebebinin kodu telefondaki programda denememin olduğunu pc de denediğimde çalıştığını sayenizde farkettim.
-
Yüzdelik kısımdaki basamak sayısının sorunsuz çalıştığını gördüm ,fakat mesela kar zarar kısmını virgülden sonra 4 basamak yazdırmak yerine sayıyı yuvarlayarak virgülden sonra tek basamak şeklinde yazdırıyor.bunu nasıl düzeltebilirim.
-
Sanırım round() un 2 işlevi var birincisi virgülden sonra basamak sayısını belirlemek ,ikincisi ise sayıyı 5 ten yukarıysa yukarıya doğru yuvarlayarak yazma 5 ten düşükse aşağı doğru yuvarlama.peki bu ikisi nasıl yazılarak bir birinden ayrılıyor.
Siz kayan noktalı sayılar ile işlem yaptığınız için hassasiyeti(precision) her zaman tam olarak istediğiniz gibi alamayabilirsiniz. Neyse ki Python’da bu işi yapabilmenizi sağlayan gömülü bir modül var: decimal — Decimal fixed point and floating point arithmetic — Python 3.12.1 documentation
Bu dediğinizi anlayamadım.
üstteki round olmadan yazılan
alttaki round olarak yazılan
yüzdelik değişimede dikkat ederseniz .29da kalıyor basamak sayısı istediğim gibi görüntüleniyor yuvarlamada yapmıyor.
Ancak kar zarar kısmında yuvarlama oluyor kast ettiğim buydu

Bahsettiğiniz modülü inceliyeceğim.Teşekkür ederim.
5 ten yukarı aşşağı kısmını yanlış ifade etmişim
round(1.5)
2
round(12.5)
12
1.5 sayısını yukarı doğru, 12.5 sayısını ise aşağı doğru yuvarladı. Bunun sebebi, kayan noktalı bir sayının üst ve alt tam sayılara olan uzaklığının birbirine eşit olduğu durumlarda Python’ın çift sayıya doğru yuvarlama yapmayı tercih etmesidir. Mesela yukarıdaki örneklerde 1.5 sayısı hem 1 sayısına, hem de 2 sayısına eşit uzaklıkta bulunuyor. İşte Python bu durumda, bir çift sayı olan 2 sayısına doğru yuvarlamayı tercih edecektir…
ifade etmeye çalıştığımda buydu.benim dikkatsizliğim : )