4

I need to delete useless zero but i have problem with (float) and number_format()

I have number like 0.00000010 and i need 0.0000001 but i have 0.0000 without number_format its good

My code

$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

p4c
  • 153
  • 2
  • 12

1 Answers1

13

This should do it:

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

rtrim takes the character(s) to trim as a second (optional) argument.

If you want it to work also for integers (eg. 1000), try this:

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

Even better, to remove trailing dot in numbers like 0.00000:

if (false !== strpos($number, '.'))
    $number = rtrim(rtrim($number, '0'), '.');
MightyPork
  • 18,270
  • 10
  • 79
  • 133
  • Thanks its work but i have problem for number over 0 ex 10 give 10. [link](http://codepad.org/IZpNl2zw) – p4c Jan 17 '15 at 22:54
  • @p4c Does that do the trick for you: `$number = 10.0000; echo (float)$number;` ? – Rizier123 Jan 17 '15 at 22:57