Coder Mesaj tarihi: Temmuz 15, 2010 Mesaj tarihi: Temmuz 15, 2010 çok ilginç bi sorunla karşı karşıyayım çok basite indirgeyerek sorayım belki benim matematiğimde bi sorun var for ($i = 0.4;$i <= 1.2;$i=$i+0.4) { echo "$i "; } ?> 0.4 den 1.2 ye 0.4 li saydırmak istiyorum çıkması gereken sonuc 0.4 0.8 1.2 fakat sonuc 0.4 0.8 çıkıyor neden olabilir bu daha da ilginç bişey söyleyeyim aynı şekilde 0.8 den 1.6 ya saydırdığımda bi sorun yok sonuc istediğim gibi 0.8 1.2 1.6 php versionum 5.2.0 saygılar
jonq Mesaj tarihi: Temmuz 15, 2010 Mesaj tarihi: Temmuz 15, 2010 PHP 5.3.0 var denedim aynı sorun var.
Sypro Mesaj tarihi: Temmuz 15, 2010 Mesaj tarihi: Temmuz 15, 2010 Komik bir yaklaşım olacak ama condition kısmını $i < 1.3; ile dene, en azından sonucu görelim..
Arlooax Mesaj tarihi: Temmuz 15, 2010 Mesaj tarihi: Temmuz 15, 2010 for dongusunde yaptigin islem, under the hood, float veya double ise , gordugun sekilde represent edilmezler memory de. Ornek olarak, 0.4 yazarsin, memory represent sekli 0.3999999999988 seklindedir. Tabi ki toplama cikarma yapinca isler karisir, hele ki bu islemler mantik test eden satirlar, daha fenasi finansal applicationlarda rapor sunan algoritmalar ise vay haline, atla kopruden. double ile karsilastirma yapiyorsan aralik degerine epsilon degeri eklemen yerinde olur, nedir 3.2 den kucuk degerler ise aradigin, 3.29 diye bakacaksin ( epsilon=0.09).
di Mesaj tarihi: Temmuz 15, 2010 Mesaj tarihi: Temmuz 15, 2010 Arlooax said: for dongusunde yaptigin islem, under the hood, float veya double ise , gordugun sekilde represent edilmezler memory de. Ornek olarak, 0.4 yazarsin, memory represent sekli 0.3999999999988 seklindedir. Tabi ki toplama cikarma yapinca isler karisir, hele ki bu islemler mantik test eden satirlar, daha fenasi finansal applicationlarda rapor sunan algoritmalar ise vay haline, atla kopruden. double ile karsilastirma yapiyorsan aralik degerine epsilon degeri eklemen yerinde olur, nedir 3.2 den kucuk degerler ise aradigin, 3.29 diye bakacaksin ( epsilon=0.09). Sunu yazacaktim bende lakin hazir yazilmisi varmis. <=, >= kullanmayin cok gerekmedikce, kullanirsaniz da ya type casting yapin integer'a ya da daha dusuk/buyuk deger verin iste.
Öne çıkan mesajlar