todas - que significa php en programacion
¿Por qué PHP está imprimiendo mi número en notación científica, cuando lo especifiqué como.000021? (7)
En PHP tengo el siguiente código:
<?PHP
$var = .000021;
echo $var;
?>
la salida es 2.1E-5!
¿Por qué? debería imprimir .000021
2.1E-5 es el mismo número que 0.000021. Así es como imprime números debajo de 0.001. Use printf() si lo quiere en un formato particular.
Editar Si no está familiarizado con la sintaxis 2.1E-5
, debe saber que es una abreviatura de 2.1 × 10 -5 . Es la forma en que la mayoría de los lenguajes de programación representan números en notación científica.
En general, un número es un número, no una cadena, y esto significa que cualquier lenguaje de programación trata un número como un número. Por lo tanto, el número en sí mismo no implica ningún formato específico (como usar .000021
lugar de 2.1e-5
). Esto no es nada diferente de mostrar un número con ceros a la izquierda (como 0.000021
) o alinear listas de números. Este es un problema general que encontrará en cualquier lenguaje de programación: si desea un formato específico, debe especificarlo, utilizando las funciones de formato de su lenguaje de programación.
A menos que especifiques el número como una cadena y lo conviertas en un número real cuando sea necesario, por supuesto. Algunos idiomas pueden hacer esto implícitamente.
Los lenguajes de programación tienen diferentes métodos para almacenar números en la memoria. Esto está determinado por el tipo de número que se está utilizando. En su caso, tiene un número de coma flotante (una fracción) que es demasiado grande para almacenarse como un número de punto fijo (las fracciones se almacenan de esta manera dependiendo de su tamaño).
Esta es una característica muy importante, especialmente cuando se trabaja con números muy grandes o muy pequeños. Por ejemplo, la NASA o spaceX utiliza métodos especiales de almacenamiento para sus cálculos, a fin de garantizar que los cohetes vuelvan a entrar en la órbita terrestre donde deberían.
Además, los diferentes métodos de almacenamiento ocupan diferentes cantidades de memoria. Sin embargo, la solución proporcionada arriba debería funcionar. Solo recuerde que los errores de redondeo pueden ocurrir con números muy grandes o pequeños.
Para mostrar un número de hasta 8 espacios decimales, sin ceros adicionales a la derecha (como lo hace number_format, que puede ser molesto), usa esto:
echo rtrim(rtrim(sprintf(''%.8F'', $var), ''0''), ".");
Usa number_format() para obtener lo que buscas:
print number_format($var, 5);
También comprueba sprintf()
Use number_format o sprintf si desea ver el número como espera.
echo sprintf(''%f'', $var);
echo number_format($var, 6);
<?php
$var = .000021;
echo $var; // 2.1E-5
echo "/n";
$var = ''.000021'';
echo $var; // .000021
Defina su número como una cadena para evitar el autoenvío cuando se usa en contexto de cuerda (es decir, eco)