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.