Hi, habe ein Script gebastelt das ein kleiner Rechner ist nun habe ich ein wirklich unerfreuliches Erlebnis!
Ich errechne mir 2 Werte! ($s1 sowie $s2) Wenn ich nun $s1 den Wert direkt zuweise (1.10526315789) funktioniert die Rechnung, aber lasse ich mir diesen Wert ausrechnen stimmt dieser nicht o_O
Vielleicht weiß jemand die Erklärung wieso?
<?
$go=1;
$a=34;
$v=19;
$lp=21;
$gegnera=38;
$gegnerv=15;
$gegnerlp=21;
$s1=$gegnerlp/($a-$gegnerv); // Dieser Wert ist 1.10526315789
$s2=$lp/($gegnera-$v);
function test($gegnera,$v){
if($gegnera-$v<1){ return 1; } else { return $gegnera-$v; }
}
function test2($a,$gegnerv){
if($a-$gegnerv<1){ return 1; } else { return $a-$gegnerv; }
}
if ($go){
echo "s1 = ".$s1."<br>";
echo "s2 = ".$s2."<br>";
if($s1>$s2) {
echo "<b><font color="red">Du verlierst!</font> Dein Gegner überlebt mit ".floor($gegnerlp-(test2($a,$gegnerv)*$s2))." LP</b>";
} else {
echo $lp."<br>";
echo (test($gegnera,$v)*$s1)."<br>";
echo ($lp-(test($gegnera,$v)*$s1))."<br>";
echo floor($lp-(test($gegnera,$v)*$s1));
}
}
?>
Lasse ich mir den Wert ausrechnen gibt er das aus:
s1 = 1.10526315789
s2 = 1.10526315789
21
21
-3.5527136788E-15
-1
gebe ich den Wert direkt ein kommt das dabei heraus:
s1 = 1.10526315789
s2 = 1.10526315789
21
20.9999999999
8.99973429114E-11
0
Das letztere ist das eigentliche Ergebnis das rauskommen soll ... Wieso passiert das?
mfg steffen