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
  }
}