Çözüldü JavaScript toplama ve çıkarma işleminde sorun

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

249873

Kilopat
Katılım
17 Şubat 2019
Mesajlar
5.050
Çözümler
20

Arkadaşlar link bu. Console logu açarsanız. Toplama işlemi ve çıkarma işlemi yapıyor. Yani bir sepet oluşturmaya çalıştım. Ancak Sorun şu ki toplama işlemini bazen doğru yaptığı halde. Çıkarırken ondalıklı kısım sapıtıyor.

Sayıları buttonların Value değerinden alıyorum.
 
Çözüm
Kod:
var x = Number(e.target.value)

Olan satırı.

Kod:
var val = e.target.value;
var x = parseFloat(val.substring(0,val.length - 1));

İle değiştirin.
Kod:
var x = Number(e.target.value)

Olan satırı.

Kod:
var val = e.target.value;
var x = parseFloat(val.substring(0,val.length - 1));

İle değiştirin.
 
Son düzenleyen: Moderatör:
Çözüm
Kod:
var x = Number(e.target.value)
Olan satırı
Kod:
var val = e.target.value;
var x = parseFloat(val.substring(0,val.length - 1));
İle değiştirin.

Hocam çok teşekkür ederim. Parse float kısmında ne yaptığınızı pek anlayamadım anlatabilir misiniz?
 
Number metoduyla döndürülen ondalıklı sayılarda çıkarma işlemi yaparken nedeniniği bilmediğim bir sorun oluyor. Biz de sayıyı direkt float olarak okuyup işlem yaptırdık.

Float: Ondalıklı sayıları da tutabilen veri tipi.
 

Hocam yaptığınıza göre ilk 2 kitabı int sayıya dönüştürüyor ondalıklı olarak almıyor son 2 kitap için de ondalıklı yapıyor.



Sayıları çekebilmem için value dışında önerebileceğiniz yöntem var mı?
 
Kusura bakmayın bir hatam olmuş.
Kod:
var val = e.target.value;
var x = parseFloat(val);
Direkt olarak bu şekilde kullanırsanız problem olmayacaktır.
Bir de HTML kısmında button'ların value propertylerinde hepsini 25.90, 23.90 gibi küsüratını tam olarak yazarak deneyin.
 



Hocam ne kusuru şu kod beni delirtmek üzere ne yaparsam yapayım olmuyor. Son dediğiniz sadece float olanı da hata veriyor. Önceki hali ile böyle hata yoktu ama ondalıklı almıyordu. Başka bir hata yaptım galiba ama nerede bulamadım.
 
Hocam ben bununla deneyice çalıştı. Emin misiniz çalışmadığına?
 


Sürekli bu hatayı alıyorum.

Tahminim toplama işleminde ve çıkarma işleminde sorun olması çünkü 2.sayıyı toplarken veya 2. sayıyı çıkarırken sapıtıyor. Ama hem toplam hem de X'i float olarak tanıttığım halde devam ediyor.
Hocam kodumda sorun yokmuş.



Bunun çıktısı



Bu. Peki bu nasıl olabiliyor. ParseInt verdiğim de 66'ya yuvarlıyor. Number verdiğimde veya float verdiğim de ise hata alıyorum virgüller uzayıp gidiyor.

Anlayan biri varsa lütfen yardımcı olsun.
@Muofer selamlar hocam bir bilgin var mı?

console.log(1.3 + 1.1); Çıktısı > 2.4000000000000004
 
Son düzenleme:
Float olduğundan noktadan sonrasini getiriyor. Float değil de int deneyebilir misiniz? Yazılım dilleri matematikte çok iyi performans göstermiyor.
 

Bu konuyu görüntüleyen kullanıcılar

Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…