PHP - obtener numero de decimales

 
Vista:
sin imagen de perfil

obtener numero de decimales

Publicado por Julian (3 intervenciones) el 02/06/2014 14:04:30
Hola. Soy nuevo en el foro y primero saludos a todos.
Segundo estoy iniciandome en el tema de php y estoy realizando una tienda online.

Mi problema es el siguiente.
Yo gestiono el precio total del pedido por una variable de sesion la cual podria ser 14.55 por ejemplo.
Luego en cuando quiero mandar la peticion a la pasarela de pago de redsys me pide ese valor pero sin punto. Ejemplo 1455.
Yo consigo ese valor multiplicando por 100. Pero el problema que se me genera es si el valor de la compra es de solo un decimal 14.5 entonces al multiplicar por 100 seria 1.45 y es una perdida...

Me gustaria saber cómo puedo averiguar cuantos decimales tiene ese valor. Para multiplicar por 10 o por 100.
He visto cosas por hay pero solo obtengo redondeo..
Un saludo y gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener numero de decimales

Publicado por xve (6935 intervenciones) el 02/06/2014 15:32:19
Hola Julian, a mi modo de ver, creo que tendrías que guardar siempre los dos decimales en al base de datos, sino, no vas a saber nunca si tiene uno, dos o ningún decimal.

Por ejemplo, si el precio es 3€, yo guardaría en la base de datos 300. Si es 1,5€ guardaría 150.

Si no lo haces así, nunca sabrás si 145, es 1,45 o 14,50 o 145,00

Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener numero de decimales

Publicado por Alejandro (839 intervenciones) el 02/06/2014 18:48:18
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Dale formato
1
number_format(14.5, 2, '.', '')  // Resultado 14.50
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener numero de decimales

Publicado por Jacinto del Rosario (4 intervenciones) el 25/02/2024 15:49:55
Hola Alejandro:
Nuevamente por el foro esta vez queriendo que el resultado de una formula me entregue el resultado con una "coma" y NO con un "punto. Este el el código que tengo:
1
2
3
4
5
6
function truncateFloat($number, $digitos) {
  $raiz = 10;
  $multiplicador = pow($raiz, $digitos);
  $resultado = ((int) ($number * $multiplicador)) / $multiplicador;
  return number_format($resultado, $digitos);
  }
Agradecido
Jdel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener numero de decimales

Publicado por Julian (3 intervenciones) el 02/06/2014 18:56:39
Opto mas por la segunda opcion. Voy a probarla y ya hos comento gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener numero de decimales

Publicado por Julian (3 intervenciones) el 02/06/2014 19:06:43
La opcion de darle formato funciona muy bien.
Si solo tiene un decima me añade el 0 y si tiene dos lo deja como esta muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener numero de decimales

Publicado por Fran Buigues (1 intervención) el 23/01/2024 13:52:07
Hola.

Ahi tienes una función que te indica el número de decimales pasado un número:

function numDecimales($num)
{
$n_decimales = 0;
for ($i=0; $i<10; $i++)
{
$aux = pow(10,$i);
$pow = $num*$aux;
if (intval($pow) == $pow) { $n_decimales = $i; break; }
}
return $n_decimales;
}


Saludos.l
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar