Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Php şeysi


Coder

Öne çıkan mesajlar

ç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
Link to comment
Sosyal ağlarda paylaş

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).
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...