2015-01-17 2 views
2

нужно удалить бесполезный ноль, но у меня есть проблемы с (float) и number_format()Удалить ненужные нулевые цифры из десятичных знаков

У меня есть номер, как 0.00000010 и мне нужно 0.0000001 но у меня есть 0.0000 без number_format его хорошо

Моего кода

$number = (float)$number; 
$number_array = explode('.', $number); 
$left = $number_array[0]; 
$right = $number_array[1]; 
$number = number_format($number, strlen($right)); 

http://codepad.org/ondL9bg1

+3

Нули никогда бесполезный. – arkascha

+1

Возможный дубликат [Как удалить конечные нули в PHP] (http://stackoverflow.com/questions/5149129/how-to-strip-trailing-zeros-in-php) – Rizier123

ответ

9

Это следует сделать это:

$number = rtrim($number, '0'); 

rtrim принимает символ (ы) для обрезки в качестве второго (необязательного) аргумента. (., Например, 1000)

Если вы хотите работать и для целых чисел, попробуйте следующее:

if (false !== strpos($number, '.')) 
    $number = rtrim($number, '0'); 

Еще лучше, чтобы удалить конечные точки в числах, как 0.00000:

if (false !== strpos($number, '.')) 
    $number = rtrim(rtrim($number, '0'), '.'); 
+0

Спасибо, его работа, но у меня проблема для номера более 0 ex 10 дают 10. [link] (http://codepad.org/IZpNl2zw) – p4c

+0

@ p4c Это делает трюк для вас: '$ number = 10.0000; echo (float) $ number; '? – Rizier123

+0

@ p4c попробуйте проверить десятичную точку, см. Мое редактирование. – MightyPork

Смежные вопросы