Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/11/2005, 16:31
Resete-e
 
Fecha de Ingreso: noviembre-2005
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
Bueno con BCmath no lo he logrado obviamente.

Entonces he pensado en volver a usar doubles, pero no entiendo muy bien como trata PHP los tipos de datos, dice que tiene doubles y floats pero en las especificaciones de las funciones siempre pone float y el valor de retorno siempre tiene la misma precisión.

Al final empecé a sospechar sobre el tema de la precisión puesto que a mi me da siempre 12 en el valor de ciertas constantes como el número e pero en algunas páginas lo mostraban con más precisión, tirando del hilo di con un parámetro del php.ini:

En el archivo de configuración de php (/etc/php4/apache/php.ini ) hay una opción que pone:
Código:
; The number of significant digits displayed in floating point numbers.
precision    =  12
Cambiando el 12 por un valor mayor se obtiene más precisión en los floats. Pero por encima de 15 cifras decimales (precision = 16) no cuadra con valores que veo por internet, con precision = 20:
Valor M_E -> 2.7182818284590452354
Valor que me da -> 2.7182818284590450908

Ahora tengo varias preguntas:
¿El valor máximo que puedo representar en mi servidor es el equivalente a un double?
¿Puedo modificar la opción de "precision" en mi web en vez de en la configuración del servidor PHP?
¿En PHP hay diferencia entre floats y doubles o solo se fija en el valor de "precision"?


Un saludo.