Foros del Web » Programando para Internet » PHP »

Cómo dejar solo 2 decimales?

Estas en el tema de Cómo dejar solo 2 decimales? en el foro de PHP en Foros del Web. amigos, estoy trabajando con operaciones matemáticas (con divisiones) y cuando obtengo los resultados algunos de estos presentan una cantidad de decimales bastante extensa (ejemplo: 31.152647975078) ...
  #1 (permalink)  
Antiguo 24/08/2009, 14:04
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Cómo dejar solo 2 decimales?

amigos, estoy trabajando con operaciones matemáticas (con divisiones) y cuando obtengo los resultados algunos de estos presentan una cantidad de decimales bastante extensa (ejemplo: 31.152647975078) por lo cual yo quisiera que solo quedará con 2 decimales (31.15)

me dijieron que trabajar con las funciones number_format() o include_once, pero la verdad es que me a sido imposible poder implementar estas funciones en mi codigo, hize un tema sobre esto hace 2 semanas y hasta la fecha no consigo hacerlo...

favor si me pudieran hecha una manito...


Código php:
Ver original
  1. <?php
  2. ..................
  3.  
  4. //consulta para sacar año anterior
  5. $anhio = $anio - 1; //le resto 1 al año seleccionado para sacar el VAR
  6. $con = "SELECT * FROM valores WHERE ano='$anhio' AND mes='$mess' AND tipo='Capex'";
  7. $res = mysql_query ($con);
  8. while ($filas = mysql_fetch_array($res))
  9. {
  10.     $atrasR = $filas ['realreal'];
  11.     $atrasA = $filas ['realacum'];
  12. }
  13.  
  14. $consul = "SELECT * FROM valores WHERE ano='$anio' AND mes='$mess' AND tipo='Capex'";
  15. $resul = mysql_query ($consul);
  16. include ("funciones.php");
  17. quitadecimales();
  18. while ($filas = mysql_fetch_array($resul))
  19. {
  20.     //Calcular VAR
  21.     $realR = $filas ['realreal'];
  22.     $realA = $filas ['realacum'];
  23.    
  24.     $varR = $realR / $atrasR;
  25.     $varA = $realA / $atrasA;
  26.    
  27.     //Calcular COB
  28.     $realR = $filas ['realreal'];
  29.     $pptoR = $filas ['pptoreal'];
  30.     $realA = $filas ['realacum'];
  31.     $pptoA = $filas ['pptoacum'];
  32.    
  33.     $cobR = $realR / $pptoR;
  34.     $cobA = $realA / $pptoA;
  35.    
  36.     //Calcular GAP
  37.     $realR = $filas ['realreal'];
  38.     $pptoR = $filas ['pptoreal'];
  39.     $realA = $filas ['realacum'];
  40.     $pptoA = $filas ['pptoacum'];
  41.    
  42.     $gapR = $realR - $pptoR;
  43.     $gapA = $realA - $pptoA;
  44. ?>
  45.  
  46. <tr>
  47.     <td><?php echo $filas["categorias"] ?></td>
  48.     <td><?php echo $filas["realreal"] ?></td>
  49.     <td><?php echo $varR ?></td>
  50.     <td><?php echo $cobR ?></td>
  51.     <td><?php echo $gapR ?></td>
  52.     <td><?php echo $filas["realacum"] ?></td>
  53.     <td><?php echo $varR ?></td>
  54.     <td><?php echo $cobA ?></td>
  55.     <td><?php echo $gapA ?></td>
  56.     <td><?php echo $filas["pptoreal"]; ?></td>
  57.   </tr>

los datos Var, Cob y GAP solo los muestro, no los guardo en la base de datos!

cualquier opinion es valida!
de verdad que necesito ayuda para esto...
desde ya muchas gracias
  #2 (permalink)  
Antiguo 24/08/2009, 14:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cómo dejar solo 2 decimales?

number_format()

Edito por no leer completo tu mensaje antes de enviar la respuesta:

Ejemplo:
Código php:
Ver original
  1. $varR = number_format($realR / $atrasR, 2);
  2.     $varA = number_format($realA / $atrasA, 2);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/08/2009, 14:10
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Respuesta: Cómo dejar solo 2 decimales?

Tal y como te comentaron con number_format, seria algo asi:

Código PHP:
 <td><?php echo number_format(($varR),2,".",","); ?></td>
mira el formato en http://es.php.net/manual/en/function.number-format.php

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #4 (permalink)  
Antiguo 24/08/2009, 14:41
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Cita:
Iniciado por Triby Ver Mensaje
Ejemplo:
Código php:
Ver original
  1. $varR = number_format($realR / $atrasR, 2);
  2.     $varA = number_format($realA / $atrasA, 2);
de pelos... muchisisisimas gracias!!
funko de una...
por fin... uffff

más lo que webie y era tan fácil ¬¬
con la práctica iré aprendiendo más cosas


gracias también a Bytevamp
mi Karma es de ustedes...


probando ahora me doy cuenta que si el numero termina exacto igual le agrega decimales, es decir queda 150.00

es posible obviar los decimales en los numeros exactos? y que quede 150 solamente??

Última edición por GatorV; 24/08/2009 a las 15:21
  #5 (permalink)  
Antiguo 24/08/2009, 15:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo dejar solo 2 decimales?

Haz un cast de tu número usando (int).

Saludos.
  #6 (permalink)  
Antiguo 03/09/2009, 13:47
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Cómo dejar solo 2 decimales?

ahora implemente los puntos para los miles
acá en Chile usamos la forma Alemana


entontré que seria interesante publicarlo acá tambien

Código PHP:
<?php echo number_format(($varR),0,",","."); ?>
Cita:
you can get the German format 1.234,56. (Comma as decimal separator and point as thousand separator)
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 12:51.