SORU
30 HAZİRAN 2010, ÇARŞAMBA


Php yüzer karşılaştırın

İki yüzer bu örnek kod gibi PHP karşılaştırmak istiyorum:

$a = 0.17;
$b = 1 - 0.83; //0.17
if($a == $b ){
 echo 'a and b are same';
}
else {
 echo 'a and b are not same';
}

Bu kod $a $b aynı olsa if koşul yerine else koşul sonuç verir. Belirli bir şekilde işlemek için/PHP yüzer karşılaştırmak var mı?

Evet O bana bu sorunu çözmek için yardımcı olun.

Yoksa benim sunucu yapılandırma ile ilgili bir sorun?

CEVAP
30 HAZİRAN 2010, ÇARŞAMBA


Eğer bunu yaparsanız bu böylegerekiraynı olması. Ama kayan nokta değeri bir özelliği olan bu hesaplamalar olduğunu unutmayıngibi görünüyoraynı değer neden aslında aynı olması gerekmez. Eğer öyleyse $a sabit değer ise .17 $b Her ikisi de aynı değeri gösterir de olsa orada da farklı olduklarını edilebilir bir hesaplama ile geldi.

Genellikle böyle eşitlik için kayan nokta değerleri karşılaştır, en küçük kabul edilebilir bir fark kullanmanız gerekir:

if (abs(($a-$b)/$b) < 0.00001) {
  echo "same";
}

Onun gibi bir şey.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011