Javascript web uygulamalarımızda çok kullandığımız bir dil. Kullanıcı tarafında dinamik işlemler yaparken çok kullanıyoruz. Siteye ayrı bir güzellik kullanışlılık katıor.
Benim anlatmak istediğim daha çok hesaplama işlemleri ile ilgili. Özellikle küsüratlı sayılarda basamak sayı belirlendiğinde yuvarlama işleminin doğru yapılmadığını görebilirsiniz.
Örnek olarak bazı yuvarlama işlemlerini paylaşıyorum:
console.log(Math.round(20.47)) // sonuç 20 - doğru
console.log(Math.round(20.59)) // sonuç 21 - doğru
console.log(Math.round(1.006*100)/100) //sonuç 1.01 - doğru
Şimdi biraz kodumuzu değiştirelim:
console.log(Math.round(1.005*100)/100); // sonuç 1 - yanlış
console.log(Number((1.005).toFixed(2))); // sonuç 1 - yanlış
Sonuç olarak çarpa, bölme işlemlerinden sonra virgülden sonraki basamaklarda yuvarlama işleminde sorun oluyor. Normalde 5 ve üzeri ise kendinden önceki sayıyı bir üst sayıya yuvarlaması gerekirken, yukarıda paylaştığım kod parçacığında da gördüğünüz gibi yanlış yuvarlıyor. Mesela, 1.05 ise 1.1, 1.03 ise 1.0 gibi yuvarlaması gerekiyor.
Bu sorunu çözebilmek için aşağıdaki gibi bir fonksiyon oluşturabiliriz:
function yuvarla(sonuc, basamak) {
return Number(Math.round(sonuc+'e'+basamak)+'e-'+basamak);
}
yuvarla((1.005*100)/100,2); //sonuç - 1.01
yuvarla((1.0457*100)/100*2,3) //sonuç - 2.091
yuvarla((1.0457*100)/100*2,1) //sonuç - 2.1
Umarım işinize yaramıştır. İyi çalışmalar dilerim.
huseyn
salam Javascripde mentiksel hesablama nece olour const a = n => {
let sum = 1;
let prev = 1
for(let i =2; i < n + 1; i++)
{
sum = sum + prev*1
prev = prev * 1
10.08.2022, 10:31:26}
return sum;} bele hesablam turleri elemey istiyirem mellim ev tapsirigi kimi verib