fermayil adlı üyeden alıntı: mesajı görüntüle
Yapay zekaya sorun daha hızlı yanıt alırsınız
hocam yapay zekaya sorduk yetmedi bilgisi sanırım yada tam anlatamadık

böyle bir cevap verdi


Alıntı
Bu durum, float işlemlerinde doğruluk kaybına neden olabilir. Float sayılar, bilgisayar belleğinde tam olarak temsil edilemeyen ondalık sayılardır. Bu nedenle, matematiksel işlemler sırasında doğruluk kaybı yaşanabilir ve beklenmeyen sonuçlar elde edilebilir.
Eğer kargo bedeli gibi paranın hassas olduğu değerlerle işlem yapılıyorsa, float yerine sabit noktalı sayılar kullanmak daha güvenli olabilir. Örneğin, PHP'nin bcmul() fonksiyonu gibi sabit noktalı aritmetik işlemler için özel fonksiyonlar kullanılabilir.
Aşağıdaki örnek, bcmul() fonksiyonunu kullanarak exchange fonksiyonunuzu nasıl güvenli bir şekilde düzeltebileceğinizi gösteriyor:

public function exchange($price, $baseCurrency, $toBeExchanged)
{ $rate = $this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate(); // Sabit noktalı sayılarla işlem yapmak için bcmul() fonksiyonunu kullanın $result = bcmul($price, $rate, 2); return $result; }
Bu kod parçasında, bcmul() fonksiyonu, sabit noktalı aritmetik yapmak için kullanılır. Üçüncü parametre olan 2, sonucun iki ondalık basamakla sınırlanmasını sağlar. Bu sayede, float işlemlerinden kaynaklanan doğruluk kaybı minimuma indirilir ve beklenmedik sonuçlar önlenir.