BelStudent
целеустремлённый чел
Как убить злобное число (3.3e+6)
Проблема такая: хотел вывести красиво float число с округлением до сотых.
Но число 1000.00 выводится как 1000, поэтому работаю с числом как с текстом, тогда всё OK.
КРОМЕ ОДНОГО СЛУЧАЯ.
УБИЛ КУЧУ ВРЕМЕНИ, но никак не могу исправить. Этот случай - число 3.3e+6.
Оно никак не хочет приводиться к формату 3300000.00.
Бросаю рабочий код,можите его запустить:
В Zend показывает нормально. Но ни один браузер (Mozilla, Opera, IE) не отображает в нормальной форме. Только в научной.
Не хочу ставить простую заглушку if'ом не поняв причины. Кто-нибудь сможет мне сказать, причины этого недоразумения?
Проблема такая: хотел вывести красиво float число с округлением до сотых.
Но число 1000.00 выводится как 1000, поэтому работаю с числом как с текстом, тогда всё OK.
КРОМЕ ОДНОГО СЛУЧАЯ.
УБИЛ КУЧУ ВРЕМЕНИ, но никак не могу исправить. Этот случай - число 3.3e+6.
Оно никак не хочет приводиться к формату 3300000.00.
Бросаю рабочий код,можите его запустить:
PHP:
<?php function r3($str)
{ $temp=round((float)$str,2); // избавляемя от такой формулировки "1.705123e+0010"
$temp=(string)$temp;
$len=strlen($temp);
$i=strrpos($temp,'.');
if ($len-$i==2) $temp.='0';
else if ($i==false) $temp.='.00';
return $temp;
}
$a='3.3e+6';
$b=r3($a);
echo "Окончательный ответ= $b" ;
?>
Не хочу ставить простую заглушку if'ом не поняв причины. Кто-нибудь сможет мне сказать, причины этого недоразумения?