for-Schleife anstatt i++ i+0.1
Shogun
- php
Hallo zusammen,
kann mir jemannd erklären warum das nicht klappt?
for ($i=0; $i<1; $i+0.1) {
echo $i;
}
Er (da sooft Fragen kommen "WER?", der PHP-Interpreter) müsste doch eigentlich 0.1,0.2,0.3 usw. ausgeben. Oder funktioniert die for-Schleife nur mit ++.
Danke Euch und wünsche einen schönen Karneval.
Grüße
Shogun
[latex]Mae govannen![/latex]
Er (da sooft Fragen kommen "WER?", der PHP-Interpreter) müsste doch eigentlich 0.1,0.2,0.3 usw. ausgeben. Oder funktioniert die for-Schleife nur mit ++.
du suchst +=
Cü,
Kai
du suchst +=
Danke Dir tausendmal!
Die Lösung kann manchmal so einfach sein.
DANKE
Shogun
Hallo,
du suchst +=
Danke Dir tausendmal!
Die Lösung kann manchmal so einfach sein.
Ich gebe noch zu bedenken, dass die Zahl 0.1 nicht exakt dargestellt werden kann im Computer, wenn man Gleitkommaarithmetik verwendet, wie PHP es tut - 1 dagegens schon. Wenn Du also 10 mal 0.1 auf eine Zahl addierst ist das nicht das gleiche, als wenn Du 1 auf die Zahl addierst:
$zahl = 4;
printf ("%.20f<br />\n", $zahl + 1);
printf ("%.20f<br />\n", $zahl + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1);
Ergibt:
5.00000000000000000000
4.99999999999999644729
Viele Grüße,
Christian
你好 Shogun,
kann mir jemannd erklären warum das nicht klappt?
for ($i=0; $i<1; $i+0.1) {
echo $i;
}
Du hast die Wertzuweisung vergessen. So gehts:
~~~php
for($i=0; $i<1; $i=$i+0.1) {
echo $i;
}
Die Post- und Präfix-Inkrement-Operatoren modifizieren die Variable implizit, $i+0.1 tut das nicht, $i bleibt also immer bei 0.
再见,
克里斯蒂安
@@Christian Kruse:
for($i=0; $i<1; $i=$i+0.1) {
echo $i;
}
Wofür man, wie Kai schon sagte, kürzer schreiben kann
~~~php
for ($i = 0; $i < 1; $i += 0.1)
{
echo $i;
}
Live long and prosper,
Gunnar