Ben anahtar sorun gerekli kaç pozisyon tanımlama olduğunu düşünüyorum. İlk ondalık bir 0 oldu çünkü 13 gibi 13.01 tanımlarsınız? Printf ve sayı biçimi kaç ondalık bilmek sana ihtiyacı beri, ben o sizin için işe yarayacağını bilmiyorum.
Belki böyle bir şey (bir çok fonksiyonu olan, ama ilk 0 arar ve sonra kesik dize döndürür). Evet, bu yoğun, ama sizin için en iyi yol olabilir.
function show_number($number, $max = 8){
if(strpos($number, '.')){
$decimal = strpos($number, '.');
if(strpos($number, '.0')){
return substr($number, 0, $decimal);//returns whole if zero is first
} else {
if(strpos(substr($number, $decimal, $max), '0')){
$zero = strpos(substr($number, $decimal, $max), '0');
return substr($number, 0, $decimal+$zero);//returns number w/0 first zero
} else {
return substr($number, 0, $decimal+$max+1); //returns number with max places
}
}
} else {
return $number; //returns number if no decimals
}
}