solo - php round 2 decimals with zero
round en PHP muestra notación científica en lugar de número completo (3)
Posiblemente relacionado con este informe de error , por lo que podría intentar
printf("%d", $myvar);
Estoy tratando de hacer un eco de una variable que contiene 1400000. entonces está escrito: echo round(1400000);
esto da 1,4E + 6 en lugar del número completo. ¿Alguien una idea sobre cómo mostrarlo por completo?
Parece que ronda fue el problema. Lo cambié con number_format()
y esto hace bien el trabajo. Gracias Aron y Paul por las respuestas.
En relación con tu pregunta, también encontré este comentario en el sitio web de PHP.
PHP cambia de la notación decimal estándar a la notación exponencial para ciertos flotantes "especiales". Puede ver una lista parcial de dichos valores "especiales" con esto:
for( $tmp = 0, $i = 0; $i < 100; $i++ )
{
$tmp += 100000;
echo round($tmp),"/n";
}
Entonces, si agrega dos carrozas, termina con un valor "especial", por ej. 1.2E + 6, luego lo pone sin modificar en una consulta de actualización para almacenar el valor en una columna decimal, por ejemplo, es probable que obtenga una transacción fallida , ya que la base de datos verá "1.2E + 6" como datos varchar, no decimales. Del mismo modo, es probable que obtenga un error de validación XSD si coloca el valor en xml.
Tengo que ser honesto: esta es una de las cosas más extrañas que he visto en cualquier idioma en más de 20 años de codificación, y es un dolor colosal para mi alrededor.
Parece que todavía no ha habido una solución "real", pero a juzgar por los comentarios en el informe de errores que Paul Dixon hizo referencia anteriormente, su solución parece funcionar.