Foros del Web » Programando para Internet » PHP »

BCmath elevar a un número real

Estas en el tema de BCmath elevar a un número real en el foro de PHP en Foros del Web. Estoy usando la librería BCmath que permite el uso de números con precisión variable usando strings, pero se hace necesario el uso de funciones propias ...
  #1 (permalink)  
Antiguo 23/11/2005, 19:32
 
Fecha de Ingreso: noviembre-2005
Mensajes: 2
Antigüedad: 18 años, 4 meses
Puntos: 0
BCmath elevar a un número real

Estoy usando la librería BCmath que permite el uso de números con precisión variable usando strings, pero se hace necesario el uso de funciones propias para realizar operaciones:
http://www.php.net/manual/es/ref.bc.php

El problema lo tengo con la función bcpow (http://www.php.net/manual/es/function.bcpow.php ) puesto que quiero elevar un número a un exponente que puede ser decimal, pero la función no admite exponentes decimales.

Se les ocurre alguna forma solucionarlo?


Un saludo.
  #2 (permalink)  
Antiguo 24/11/2005, 16:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 2
Antigüedad: 18 años, 4 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.
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 04:07.