Foros del Web » Programando para Internet » PHP »

Por qué muestra 2.01100939824E+16 con un entero?

Estas en el tema de Por qué muestra 2.01100939824E+16 con un entero? en el foro de PHP en Foros del Web. Por qué la poner @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original echo 20110093982429001 ; me muestra 2.01100939824E+16? Ya se que no hay long en PHP, pero ...
  #1 (permalink)  
Antiguo 23/02/2011, 05:03
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Por qué muestra 2.01100939824E+16 con un entero?

Por qué la poner

Código PHP:
Ver original
  1. echo 20110093982429001;

me muestra 2.01100939824E+16?

Ya se que no hay long en PHP, pero cómo podría solucionarlo?
  #2 (permalink)  
Antiguo 23/02/2011, 05:31
 
Fecha de Ingreso: marzo-2004
Ubicación: España
Mensajes: 185
Antigüedad: 20 años, 8 meses
Puntos: 19
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

ponlo entre comillas y será una cadena de texto

Cita:
echo "20110093982429001";
__________________
Escape Room -

Ios Games
  #3 (permalink)  
Antiguo 23/02/2011, 05:32
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

Cita:
Iniciado por cybersersupremo Ver Mensaje
ponlo entre comillas y será una cadena de texto
Así sí, claro. Pero lo paso como campo en un webservice que está declarado como long y me lo envía así en el mensaje SOAP. Por eso quiero hacer un int largo.

Gracias.
  #4 (permalink)  
Antiguo 23/02/2011, 07:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

Php asigna tipos de forma automática, prueba a poner lo siguiente
Código PHP:
(int) $numero 20110093982429001;
echo 
$numero
De esta manera te aseguras de que el número 20110093982429001 se guardará como entero y no como número en coma flotante (float).

Prueba y coméntame los resultados
  #5 (permalink)  
Antiguo 23/02/2011, 07:13
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

revisa este link

http://php.benscom.com/manual/es/lan...es.integer.php


saludos.
  #6 (permalink)  
Antiguo 23/02/2011, 07:13
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

Cita:
Iniciado por Lethiur Ver Mensaje
Php asigna tipos de forma automática, prueba a poner lo siguiente
Código PHP:
(int) $numero 20110093982429001;
echo 
$numero
De esta manera te aseguras de que el número 20110093982429001 se guardará como entero y no como número en coma flotante (float).

Prueba y coméntame los resultados
también revisa el link... si haces eso el resultado no sera el que crees..

saludos.
  #7 (permalink)  
Antiguo 23/02/2011, 08:06
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

Pasa lo mismo. He descubierto que en memoria se guarda bien pero al hacer un echo o un print lo muestra como he indicado.
  #8 (permalink)  
Antiguo 24/02/2011, 10:13
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Por qué muestra 2.01100939824E+16 con un entero?

Cita:
Iniciado por cluster28 Ver Mensaje
Pasa lo mismo. He descubierto que en memoria se guarda bien pero al hacer un echo o un print lo muestra como he indicado.
Estaba equivocado.

http://bugs.php.net/bug.php?id=38041

Etiquetas: entero, muestra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:17.