经常在小数位和小数点右边修剪零

I have been handling long numbers in PHP. Like the following examples.

12.020000
12.000000

To get rid of trailing zeros and the decimal point I have been using the following inside a function.

return rtrim(rtrim($str, "0"),".");

So the above turns out like.

12.02
12

It was a bit short sighted as when 1000 gets entered it gets turned into 1.

Can someone please help me with the code to remove trailing zeros after the decimal point only?

Bonus points if the code removes the decimal place but I can always feed it into rtim($str,".").

EDIT: To be clear, I am stripping the decimal place and zeros only when displaying to the screen. Also casting to float is not an option as I also handle numbers like 0.00000001 which come out like 1.0e-9 sort of thing.

Why are you using string to hold numbers? Cast it to float and it'll solve your problem.

$string = '12.020000';
$number = (float) $string; // will be 12.02

Then, if you want to use it as string (but why?)

$string = (string) $number;

The thing that perplexes me about your question is that extra zeros won't be included in a number variable without intentionally adding them with number_format. (This may be why someone down-voted it).

Normally you don't want to use string functions (meant for text) on variables that hold numbers. If you want to round off a number, use a function like round.

http://php.net/manual/en/function.round.php

There's also number_format, which can format numbers by adding zero padding: (it doesn't actuall round, just trims off excess numbers).

http://php.net/manual/en/function.number-format.php

Since your zeros are appearing, it's likely that you simply need to multiple the variable by 1, which will essentially convert a string to a number.

Good luck!