intento devolver de una consulta hecha a mi controlador Laravel en php, y en la respuesta me transforma el valor del monto, ya formateado a decimal con 2 digitos en un decimal con 16 digitos.
Controlador entrega:
$saldo_amv = 16800.09;
$saldo = (float)number_format($saldo_amv, 2, '.', '');
return response()->json(['success' => 'TRUE', 'saldo' => $saldo, 'error' =>'']);
y del codigo del controlador, una vez consumido, entraga saldo con el numero sin redondear.
{
"success": "TRUE",
"saldo": 16800.0999999999985448084771633148193359375,
"error": ""
}
De que manera puedo hacer para que me erogue sin toda la chorrrera de dígitos, como se ve en el JSON sino que solo 2 digitos como se preformateo?
float
para valores monetarios. Usa la clase ayudadora de Laravel llamadaNumber
, que para eso existe. Y para PHP puro,NumberFormatter
, en la cual está basadaNumber
de Laravel. Otro consejo, NO formatees al enviar, sino al consumir los datos. Por algo muy simple, ese dato puede recibirse en Alemania, o en Estados Unidos, y según el país, puede que necesites signos o formatos propios de ese país. Si formateas al enviar, capas el dato.return
intentes ponerlo así:'saldo' => $saldo_amv