• 07-05-2024, 15:55:58
    #10
    Biçimi kontrol et.
    number_format ı bir yazıp gelen veriye bak
  • 07-05-2024, 15:57:43
    #11
    podos adlı üyeden alıntı: mesajı görüntüle
    Biçimi kontrol et.
    number_format ı bir yazıp gelen veriye bak
    şöyle bişey geliyor o şekilde olunca
    1.002261
  • 07-05-2024, 16:27:09
    #12
    Kurumsal PLUS
    public function exchange($price, $baseCurrency, $toBeExchanged)
        {
            $formatted = number_format($this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate(),2);
            $a = $price * $formatted;
            return round($a); // Gecici cozum dönen değeri yuvarladık 100.23 => 100
     
        }
  • 07-05-2024, 16:52:11
    #13
    public function exchange($price, $baseCurrency, $toBeExchanged)
    {
        $exchangeRate = $this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate();
        $formattedRate = round($exchangeRate, 2);
        $total = $price * $formattedRate;
        return $total;
    }
  • 07-05-2024, 18:11:33
    #14
    MuratCENGEL adlı üyeden alıntı: mesajı görüntüle
    Merhaba Arkadaşlar

    Şöyle bir sorunum var aşağıdaki fonksiyonda exchange yapmaya çalışıyorum ancak arka plandan 100 tl kargo bedeli girdiğimde ön kısma 100.23 şeklinde yansıyor o 23 kuruşun bir türlü nereden geldiğini bulamadım.
    Size hata nereden kaynaklanıyor olabilir? Nerede hata yapıyorum ? yardım ederseniz sevinirim.

    public function exchange($price, $baseCurrency, $toBeExchanged)
        {
            $formatted = number_format($this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate(),2);
            $a = $price * $formatted;
            return $a;
    
        }
    number_format(), fiyat gösterim şekli için kullanılmalı, işlemler bittiğinde en sonda, number_format yerine round kullandığında düzelmesi lazım.

    public function exchange($price, $baseCurrency, $toBeExchanged)
        {
            $formatted = round($this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate(),2);
            return  $price * $formatted;
    
        }
  • 07-05-2024, 18:25:35
    #15
    public function exchange($price, $baseCurrency, $toBeExchanged)
    {
        $exchangeRate = $this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate();
        $total = $price * $exchangeRate;
        return number_format($total, 2); // Sonucu formatlayarak döndür
    }
  • 07-05-2024, 21:44:05
    #16
    sanırım tl giriyorsunuz dbye usd kaydediliyor, sonra bunu geri çeviriyorsunuz tl ye
    muhtemelen ondalık hane sıkıntısı, dolar kuru olduğunu varsayarsak 32.33 den 100 tl = 3.09 küsür dolar, yuvarlanınca 3.1 ettiyse 32.33 ile geri çarpınca 100.223 ediyor
    daha fazla detay lazım

    MuratCENGEL adlı üyeden alıntı: mesajı görüntüle
    şöyle bişey geliyor o şekilde olunca
    1.002261
    100 * 1.002261 = 100.2261 ediyor yuvarlanınca 100.23 görüyorsunuz
    ama 2 haneye düşmüş olması lazım number_format ile
    public function exchange($price, $baseCurrency, $toBeExchanged)
    {
    $rate = $this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate();
    var_dump($rate);
    $formatted = number_format($rate, 2);
    var_dump($price);
    var_dump($formatted);
    $a = $price * $formatted;
    var_dump($a);
    return $a;
    
    }
    şunu çalıştırıp çıktısını atarsanız herşey çok daha kolay olacak
  • 07-05-2024, 22:00:35
    #17
    En son yazan arkadaşın dediği gibi olabilir sanırım döviz çalıştırıyorsunuz "$baseCurrency," o etki ediyor olabilir + tablodaki price değerinin tablo türü nedir ? size tavsiyem decimal 10,2 olarak kullanın arayüzde formatlayıp bize uygun hale getirebilirsiniz hesaplama açısından daha rahat çalışabilirsiniz.
  • 08-05-2024, 00:26:14
    #18
    hesapadim adlı üyeden alıntı: mesajı görüntüle
    sanırım tl giriyorsunuz dbye usd kaydediliyor, sonra bunu geri çeviriyorsunuz tl ye
    muhtemelen ondalık hane sıkıntısı, dolar kuru olduğunu varsayarsak 32.33 den 100 tl = 3.09 küsür dolar, yuvarlanınca 3.1 ettiyse 32.33 ile geri çarpınca 100.223 ediyor
    daha fazla detay lazım



    100 * 1.002261 = 100.2261 ediyor yuvarlanınca 100.23 görüyorsunuz
    ama 2 haneye düşmüş olması lazım number_format ile
    public function exchange($price, $baseCurrency, $toBeExchanged)
    {
    $rate = $this->list[$baseCurrency->getCode()]->getExchangeRates()[$toBeExchanged->getCode()]->getRate();
    var_dump($rate);
    $formatted = number_format($rate, 2);
    var_dump($price);
    var_dump($formatted);
    $a = $price * $formatted;
    var_dump($a);
    return $a;
    
    }
    şunu çalıştırıp çıktısını atarsanız herşey çok daha kolay olacak
    hocam verdiğiniz kod ile aldıımız sonuç budur

    string(6) "0.0310" string(6) "100.00" string(4) "0.03" float(3)