|
Könntest du bitte die exakte betroffene Zeile nennen? In deiner Frage sind mindestens zwei unterschiedliche Versionen zu finden. :)
|
||
| 1 |
Macht es einen Unterschied, ob du mit '8,775' oder 8.775 arbeitest? D.h. ist das Problem beim round oder der Konvertierung von String nach Float?
|
|
| 1 |
Also bei mir kommt in PHP bei echo round(8.775,2); immernoch 8,78 raus. Bitte poste mal deine komplette Zeile bzw. deine Variablenwerte dazu. Grüßle
|
$var1 = '8.775';
$var2 = 8.775;
$res1 = round($var1, 2);
$res2 = round($var2, 2);
$res3 = round(8.775, 2);
$res4 = round('8.775', 2);
echo 'res1('.gettype($res1).'): '.$res1;
echo '<br />';
echo 'res2('.gettype($res2).'): '.$res2;
echo '<br />';
echo 'res3('.gettype($res3).'): '.$res3;
echo '<br />';
echo 'res4('.gettype($res4).'): '.$res4;
<?php
function modify_betrag($betrag)
{
$betrag=str_replace(",",".",$betrag);
$betrag=explode(".",$betrag);
$hauptzahl=$betrag[0];
$stelle_drei=substr($betrag[1],2,1);
$erstenzwei=substr($betrag[1],0,2);
if($erstenzwei =="")
{
$converted=$hauptzahl;
}
else
{
if($stelle_drei =="" or $stelle_drei ==0)
{
$converted=$betrag[0].".".$erstenzwei;
}
else
{
if($stelle_drei >=5)
{
$erstenzwei=$erstenzwei+1;
}
$ranhaengen=$erstenzwei;
if($ranhaengen =="")
{
$converted=$hauptzahl.".00";
}
elseif($ranhaengen>=100)
{
$ranhaengen="00";
$hauptzahl++;
$converted=$hauptzahl.".".$ranhaengen;
}
else
{
$converted=$hauptzahl.".".$ranhaengen;
}
}
}
return $converted;
}
?>
echo round(8.775,2);
// 8.78