Ver Mensaje Individual
  #438 (permalink)  
Antiguo 03/06/2011, 11:22
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Exacto, pero la mejor forma es trabajando con BC Math. Es decir, la forma como se puede resolver sería
Código PHP:
Ver original
  1. <?php
  2. echo (int)(bcadd(0.1, 0.7, 1) * 10);

Esas funciones, son las indicadas para trabajar con precisiones, ejemplo una suma en PHP así
Código PHP:
Ver original
  1. <?php
  2. $a = '9999999999999999999999999999';
  3. $b = '9999999999999999999999999999';
  4. echo $a + $b; // imprime 2.0E+28 en un OS de 32 bits
Pero con BC Math
Código PHP:
Ver original
  1. <?php
  2. $a = '9999999999999999999999999999';
  3. $b = '9999999999999999999999999999';
  4. echo bcadd($a, $b); // imprime 19999999999999999999999999998
Es importante que se use entre comillas para que las funciones de bc math puedan trabajarlas, ya que php cuando almacena los valores en las variables y son enteros, las va a almacenar como exponenciales. Es decir
Código PHP:
Ver original
  1. <?php
  2. $a = 999999999999999999999999999;
  3. echo $a; // imprime 1.0E+27
y no va a poder trabajarlos con ese dato.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos