Foros del Web » Programando para Internet » PHP »

Problema con decimales.

Estas en el tema de Problema con decimales. en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con los datos de tipo float. Lo que quiero conseguir es convertir una variable de tipo string a float ...
  #1 (permalink)  
Antiguo 14/11/2014, 14:56
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Problema con decimales.

Hola a todos, tengo un problema con los datos de tipo float.

Lo que quiero conseguir es convertir una variable de tipo string a float con una cantidad determinada de decimales.

Si el primer decimal de la cadena es cero, debería rellenar con ceros hasta completar el número.

Ya sé que se puede con la funcion number_format, o con bcadd, pero ambas funciones devuelven una string, y yo quiero un float.

Por ejemplo:

Con CUATRO decimales:

26520 ó 26520.0

Al convertirlo debería devolver un FLOAT:

26520.0000

No sé de qué forma se puede conseguir que PHP no ignore los ceros a la derecha en las variables de tipo Float y los guarde.
  #2 (permalink)  
Antiguo 14/11/2014, 17:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con decimales.

Utiliza la función number_format.

Código PHP:
Ver original
  1. echo number_format(26520, 4, ',', ''); //Resultado: 26520.0000

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 15/11/2014, 07:13
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Problema con decimales.

Estoy preguntando como convertirlo a FLOAT, number_format devuelve un string, lo que estás haciendo ahí es imprimir un string.

var_dump(number_format(26520, 4, ',', '')); // string(10) "26520,0000"

No busco eso.


$number ='54876.00000000';

Se puede conseguir haciendo un cast.

$floatvar = (float)$number;

Pero, no conserva la cantidad de ceros.

var_dump($float_var); //float(54876)

Última edición por jreyes2119; 15/11/2014 a las 07:19
  #4 (permalink)  
Antiguo 15/11/2014, 14:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con decimales.

No había leído todo el enunciado. Pero, a todo esto, ¿cuál es el fin de conservar los cuatro ceros luego del punto? Es decir, si, por ejemplo, sumas 245 más 145.2742, el resultado será 390.2742 y obtendrías exactamente el mismo resultado si en lugar de 245 tuvieras 245.0000. Y si solamente quisieras mostrarlo como un dato, la conversión que te propuse, es la indicada, luego, si deseas operar con dicho valor, haces el casting a punto flotante.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: variable
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 22:59.