with solo round redondear number_format mostrar money hacia floatval float decimals decimales arriba php floating-point integer rounding

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.