Как избавиться от 1Е-05 в float'е

Ge0SuB

Guest
Как избавиться от 1Е-05 в float'е

Такой вопрос.
есть два числа
$f = 0.00001;
$f = 0.00010;


Надо сделать так, что-бы нули в конце обрезались.
если делать так
round($f,5)
то в первое число превращяеться в 1E-05 а вторая в 0.001
тоесть со второй нормально работает.

Делать через sprintf тоже не смог. не могу его научить в конце обрезать нули.

еще пробывал через регулярное в. :))

preg_replace("/(\.\d+?)0+$/", "$1", $f);

нули обрезает но в пером числе опять получаеться 1E-05

Так же не получилось с number_format($f,5,'.','.')
он нули не обрезает.
 
Ge0SuB
как вариант - при выводе, в цикле обрезай sprint(), нули, до первого ненулевого символа, начиная например с 20 разряда...
 

Ge0SuB

Guest
2фанат. Сказали так сделать.
2 лошадка, да как-то не хотелось бы в цикле бегать по цифрам.. там на странице генерируеться отчет и очень уж много цифр получаеться...
 

Ge0SuB

Guest
не, не помогло

___
Так же не получилось с number_format($f,5,'.','.')
он нули не обрезает.

___
 

zarus

Хитрожопый макак
PHP:
// Строка с обрезанными справа нулями 
$str_val = rtrim(number_format($var,5,'.',''), '0');
 

Фанат

oncle terrible
Команда форума
КТО сказал? ЗАЧЕМ?

если ты не можешь внятно ответить на вопрос - консультируйся с тем, кто тебе идиотски задания ставит.

повторяю.
зачем понадобилось отрезать какие-то нули в коде
$f = 0.00010;
?

-~{}~ 16.11.05 16:23:

самые идиотские топики собирают самое большое количество идиотов.
которые не дают себе труда задуматься на осмысленностью проблемы (а проблемы-то, на самом деле - НЕТ), но кидаются строчить код.
 

zarus

Хитрожопый макак
2Фанат
Не надо обосновывать нежелание решать проблему отсутствие смысла ее решать. В жизни много бессмысленных вещей. И оскорблять людей тоже не надо.
 

Фанат

oncle terrible
Команда форума
не тебе решать - есть у меня желание решать проблему, или нету.
запомни это хорошенько.

в жизни бессмысленных вещей может быть сколько угодно.
но ЗДЕСЬ их не будет.
 

sakon

П..и.н..ок
Ge0SuB
zarus
Loshadka
PHP:
$f = 0.00010;
echo $f;
и посмотрите, что получится....
 

Фанат

oncle terrible
Команда форума
zarus
ты пробовал выполнить такой код?
$f = 0.00010;
echo $f;
тебе понадобилось обрезать какие-то нули?
 

zarus

Хитрожопый макак
Автор оригинала: Фанат
не тебе решать - есть у меня желание решать проблему, или нету.
запомни это хорошенько.

в жизни бессмысленных вещей может быть сколько угодно.
но ЗДЕСЬ их не будет.
Перечитал его пост еще раз и понял, что он действительно не прав. Но я теперь точно знаю, как поведет себя strval($float).

-~{}~ 16.11.05 16:35:

Автор оригинала: Фанат
zarus
ты пробовал выполнить такой код?
$f = 0.00010;
echo $f;
тебе понадобилось обрезать какие-то нули?
Я за свой код отвечаю, а Вы попробуйте
PHP:
echo 0.00001;
 

Ge0SuB

Guest
Да, я пробывал делать echo $f;
но если $f равно 0.00001 а не 0.00100 то тогда выводиться
1Е-05

-~{}~ 16.11.05 15:47:

В моей ситуации ( грубо конечно ) но поможет такая функция :

PHP:
function cutZerro($float)
{
		$float = sprintf("%01.05f",$float);
		$sizeofFloat = strlen($float)-1;
		if ($float[$sizeofFloat] != 0)
			return sprintf("%01.05f",$float);
		else
			return round($float,5);
}
 
Сверху