• 22-01-2022, 11:37:27
    #1
    Üyeliği durduruldu
    Merhaba,

    apiden gelen bir verim var. %0,55 gibi gelen bu veriyi değişkende tutuyorum.

    $altindegisim = $finans['gram-altin']['Change'];

    Gelen veride % işareti sınama yapmama engel oluyor. eğer sayı 0 dan büyükse şunu yap, sıfırdan küçükse bunu yap, değilse şunu yap diyorum. % işareti buna engel olduğu için onu şu şekilde kaldırdım:

    $altindegisimreplace = str_replace("%","",$altindegisim);

    Bu sefer sayı 0,39 gibi geliyor. fakat eğer sayı 0 dan büyükse dediğim zaman şartı sağlamıyor. sanırım yukarı yuvarlıyor ya da ondalık sayıları okumuyor.

    Ben küsüratlara göre de işlem yapmasını istiyorum. altın fiyatları ile ilgili bir hesap yaptıracağım.

    bu işlerde yeniyim bile denilemez sadece istediğim bir şeyi internetten araştırarak yapmaya çalışıyorum.

    kodu uyguladığım kısım ise şu şekilde:
    <?php
    if ($altindegisimreplace < 0) //küçükse

    {echo"<span class='text-danger'><i class='fas fa-caret-down me-1'></i> $altindegisimreplace </span>"; }elseif ($altindegisimreplace > 0) //büyükse

    {echo"<span class='text-success'><i class='fas fa-caret-up me-1'></i> $altindegisimondalik </span>"; }


    else { echo $altindegisimreplace; }?>
  • 22-01-2022, 11:42:15
    #2
    Str olan veriyi floata çevirmenşz gerekmekte
  • 22-01-2022, 12:00:36
    #3
    Üyeliği durduruldu
    DarknessHero adlı üyeden alıntı: mesajı görüntüle
    Str olan veriyi floata çevirmenşz gerekmekte
    yanıt için teşekkür ederim, bunu nasıl yapabilirim örnek iletebilir misiniz?
  • 22-01-2022, 12:32:18
    #4
    Halil0707 adlı üyeden alıntı: mesajı görüntüle
    yanıt için teşekkür ederim, bunu nasıl yapabilirim örnek iletebilir misiniz?
    If'den önce
    $altindegisimreplace = floatval(str_replace(",",".",$altindegisimreplace))
  • 22-01-2022, 12:36:21
    #5
    Üyeliği durduruldu
    DarknessHero adlı üyeden alıntı: mesajı görüntüle
    If'den önce
    $altindegisimreplace = floatval(str_replace(",",".",$altindegisimreplace))
    gelen veri 0,39 olarak geliyor. ben bunu 0.39 (nokta ile) manuel değişkene atayınca hiç bir sorun yok. fakat verdiğiniz kodu da denediğimde 0 verisi dönüyor. küsüratını göremiyor ve işleme dahil edemiyorum. 0,39 olan veriyi direkt 0.39 a çevirmenin başka bir yolu var mı?
  • 22-01-2022, 12:37:33
    #6
    Halil0707 adlı üyeden alıntı: mesajı görüntüle
    gelen veri 0,39 olarak geliyor. ben bunu 0.39 (nokta ile) manuel değişkene atayınca hiç bir sorun yok. fakat verdiğiniz kodu da denediğimde 0 verisi dönüyor. küsüratını göremiyor ve işleme dahil edemiyorum. 0,39 olan veriyi direkt 0.39 a çevirmenin başka bir yolu var mı?
    Verdiğim kod sıfır döndürmez virgülü noktaya döndürüyor emin misiniz doğru denediğinize?

    $altindegisim = "%0,39";
    $altindegisimreplace = str_replace("%","",$altindegisim);
    $altindegisimreplace = floatval(str_replace(",",".",$altindegisimreplace));
    
    if ($altindegisimreplace < 0){
    echo "kucuk";
    }elseif ($altindegisimreplace > 0){
    echo "buyuk"; }else{ 
    echo "sıfır";
    }
  • 22-01-2022, 12:53:01
    #7
    Üyeliği durduruldu
    bu hatamı görmemi sağladı, teşekkür ederim oldu.

    DarknessHero adlı üyeden alıntı: mesajı görüntüle
    Verdiğim kod sıfır döndürmez virgülü noktaya döndürüyor emin misiniz doğru denediğinize?

    $altindegisim = "%0,39";
    $altindegisimreplace = str_replace("%","",$altindegisim);
    $altindegisimreplace = floatval(str_replace(",",".",$altindegisimreplace));
    
    if ($altindegisimreplace < 0){
    echo "kucuk";
    }elseif ($altindegisimreplace > 0){
    echo "buyuk"; }else{
    echo "sıfır";
    }