Foros del Web » Programando para Internet » PHP »

Problema con formato float en operaciones

Estas en el tema de Problema con formato float en operaciones en el foro de PHP en Foros del Web. Hola! Tengo un carrito de compras el cual debo multiplicar el precio (en la base de de datos el tipo de datos es FLOAT) por ...
  #1 (permalink)  
Antiguo 18/07/2016, 10:25
 
Fecha de Ingreso: julio-2009
Ubicación: Montevideo, UY
Mensajes: 129
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Problema con formato float en operaciones

Hola! Tengo un carrito de compras el cual debo multiplicar el precio (en la base de de datos el tipo de datos es FLOAT) por la cantidad. El problema es que luego de la multiplicación pierdo las cifras decimales.

Por ejemplo si hago:
20.00 * 5 = 100
20.90 * 5 = 104.5
20.99 * 5 = 104.95

Necesito que para cualquier costo se conserven las dos cifras decimales del precio en el resultado.
Que puedo hacer? Ya que la función number_format le aplica un formato a modo de máscara y si sigo haciendo operaciones con el costo total no mantiene el formato....

Muchas Gracias por su ayuda
  #2 (permalink)  
Antiguo 18/07/2016, 11:09
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con formato float en operaciones

Existe la función number_format(numero, decimales)
  #3 (permalink)  
Antiguo 18/07/2016, 11:18
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Problema con formato float en operaciones

Hola amigo, desconozco si desde tu manejador de Base de datos se pueda solucionar, pero, otra opción sería hacer una función propia.
La idea general sería:
1.- Evaluar que tenga decimales, de lo contrario, agregarlos (en este caso agregar ".00")
2.- Si tiene decimales, vuelves a evaluar:
a) Si tiene un decimal, agregar un cero, para tu ejemplo, 104.5 pasaría a 104.50
b) Si tiene dos decimales, no pasa nada, tu formato es el que quieres.
c) En caso de q tuvieras una cantidad de más de 2 decimales, ya sea en tus variables o resultados, tendrías que acortar el formato.

Esa sería la idea general y una posible solución (un poco engorrosa tal vez :p )
puedes checar las funciones explode, count, strlen y substr ;)
Saludos!

EDITADO
: O puedes usar number_format como dice alvaro_trewhela :p ... la verdad desconocía esta función, pero veo que también te puede servir, checa bien los parámetros q debe de llevar para lo que quieres hacer

Última edición por german_1441; 18/07/2016 a las 11:26
  #4 (permalink)  
Antiguo 18/07/2016, 14:03
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con formato float en operaciones

juega con number_format y floatval

edite.

Última edición por alvaro_trewhela; 18/07/2016 a las 15:00

Etiquetas: float, formato, operaciones
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:56.