Foros del Web » Programando para Internet » PHP »

Guardar en variable resultado exacto de una division

Estas en el tema de Guardar en variable resultado exacto de una division en el foro de PHP en Foros del Web. Como estan? Tengo un porgrama en php que realiza el calculo de uno factores para saber si se realizan o no unas ventas. el caso ...
  #1 (permalink)  
Antiguo 31/01/2008, 14:08
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Guardar en variable resultado exacto de una division

Como estan?

Tengo un porgrama en php que realiza el calculo de uno factores para saber si se realizan o no unas ventas.

el caso es que tengo una division de este estilo.

Código PHP:
$resultado = ($valor1 $query['valor2']); 
pero por ejemplo si el resultado es 0.33666666666666666666666666666667
en la variable resultado me esta quedando 0.336666666667

¿Que esta pasando?

Gracias!
  #2 (permalink)  
Antiguo 31/01/2008, 14:31
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Guardar en variable resultado exacto de una division

Hola, el resultado no es realmente el que indicas. Matemáticamente el resultado de esa división tiene un número infinito de seises y por lo tanto, tenemos que acotar el resultado de alguna forma.

Si quieres más precisión lo único que puedes hacer es aumentar la precisión en el php.ini o usar la librería bcmath http://es.php.net/manual/es/ref.bc.php
  #3 (permalink)  
Antiguo 31/01/2008, 15:04
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Guardar en variable resultado exacto de una division

No no solo pasa en ese caso si por ejemplo el resultado es 0.88235294117647100 me esta asignando a la variable 0.882350



Saben alguna posible solucion que no necesite modificacion del php.ini.

Y si la unica solucion es modificar el php.ini me pueden orientar exactamente que es lo que debo modificar en este archivo

Gracias!
  #4 (permalink)  
Antiguo 31/01/2008, 15:29
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Guardar en variable resultado exacto de una division

Puedes indicarme qué valores estás probando en la división para que te dé ese valor?

Si tienes la librería bcmath puedes usar sus funciones y no necesitas tocar nada del php.ini

Si quieres tocar el php.ini el valor es:

precision = 12

Tienes el 12 por el valor que quieras.
  #5 (permalink)  
Antiguo 31/01/2008, 15:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Guardar en variable resultado exacto de una division

no tengo la libreria y edita el php.ini en precision pero solo me deja hasta 16 asi le coloque 20 o 30 maximo imprime 16 decimales

Sabe porque?

gracias de nuevo?
  #6 (permalink)  
Antiguo 01/02/2008, 11:17
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Guardar en variable resultado exacto de una division

Me imagino que debe tener un límite. El hecho de aumentar el número decimales supone una pérdida considerable de rendimiento e implementar algoritmos propios para saltarse los límites de la arquitectura donde está corriendo la aplicaciones.

Así que si no te permite más decimales, tu única opción es usar BCmath u otra librería equivalente.
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 14:03.