creo que el problema clave es definir la forma en que se necesitan muchas posiciones. ¿Definiría 13.01 como 13 porque el primer decimal era un 0? Como printf y el formato numérico necesitan que sepas cuántos decimales, no sé si eso funcionará para ti.
Tal vez algo como esto (que es una gran cantidad de funciones, pero busca el primer 0, y luego devuelve la cadena truncada). Sí, es intensivo, pero puede ser la mejor manera para ti.
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
}
}
¿Ha intentado utilizar redonda () en lugar de number_format()? –
Según tengo entendido, number_format solo se debe usar para la visualización. – kta