Foros del Web » Programando para Internet » PHP »

Eliminar decimales UNICAMENTE si valen .00

Estas en el tema de Eliminar decimales UNICAMENTE si valen .00 en el foro de PHP en Foros del Web. Hola, sin duda hay 10 o mas formas de hacerlo. Pero... en PHP cual es la manera idónea de eliminar decimales UNICAMENTE si valen .00 ...
  #1 (permalink)  
Antiguo 30/10/2011, 15:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 9 meses
Puntos: 22
Eliminar decimales UNICAMENTE si valen .00

Hola,

sin duda hay 10 o mas formas de hacerlo.

Pero...

en PHP cual es la manera idónea de eliminar decimales UNICAMENTE si valen .00 ?

34.003 = 34.003

34.000 = 34

La mejor opción cual seria?
  #2 (permalink)  
Antiguo 30/10/2011, 16:07
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Eliminar decimales UNICAMENTE si valen .00

Expresiones regulares
Código PHP:
Ver original
  1. echo preg_replace('/^(\d+)\.0+$/', '$1', '34.000');
  2. echo preg_replace('/^(\d+)\.0+$/', '$1', '34.010');
  3. echo preg_replace('/^(\d+)\.0+$/', '$1', '34.200');
  4. echo preg_replace('/^(\d+)\.0+$/', '$1', '34.320');

La regexp dice:
Si el número termina con 0 una vez o más después del punto, elimina y solo captura lo que está antes del punto. Si no, deja el número como está

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 30/10/2011, 16:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Eliminar decimales UNICAMENTE si valen .00

Algo asi puedes hacer
Código PHP:
Ver original
  1. $digit = 3.003;
  2. if(ceil($digit) > $digit){
  3.     echo $digit;
  4. }
  5. else{
  6.    echo intval($digit);
  7. }
O mas corto
Código PHP:
Ver original
  1. echo ceil($digit) > $digit ? $digit : intval($digit);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 30/10/2011, 16:31
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 9 meses
Puntos: 89
Respuesta: Eliminar decimales UNICAMENTE si valen .00

Hay una funcion que te puede servir xD
Lo unico a tener en cuenta, es el redondeo espero que te sirva.

round()

Los ejemplos te muestran como usarlo.
__________________
Mono programando!
twitter.com/eguimariano
  #5 (permalink)  
Antiguo 30/10/2011, 17:26
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 9 meses
Puntos: 22
Respuesta: Eliminar decimales UNICAMENTE si valen .00

Muy amables equipo.

Me ha sido de TOTAL utilidad!
  #6 (permalink)  
Antiguo 30/10/2011, 18:08
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Eliminar decimales UNICAMENTE si valen .00

Casting to float no te sirve ?

Código PHP:
Ver original
  1. echo (float)115.00;
  2. echo (float)115.003;

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
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 22:22.