My API request currently returns JSON in the following format:
[
{
"date":"2016-08-11",
"voltage":0.1,
"current":0.01,
"power":0,
"energy": null,
}
]
I'm trying to ensure consistency of data output by forcing the voltage, current and power values to be three decimal places, type float. I've tried using number_format()
but the output are type strings, which I do not want. Is there a way of doing this, i.e. outputting 0
as a float 0.000
rather than staying an integer? Also, when no values are present I need to convert null into 0.000, is that possible without casting to strings?
The question PHP float with 2 decimal places: .00 doesn't explain (in layman's terms) why this is not possible in PHP.
echo floatval(number_format('0.001', 3)); // output: float 0.001
But unfortunately strings containing '0.000'
or null
after type casting will produce 0
.
echo (float)number_format('0.000', 3); // output: 0
echo floatval(number_format('0.000', 3)); // output: 0
echo floatval(number_format(null, 3)); // output: 0
"...bytes with value 0 (“NUL bytes”) are allowed anywhere in the string (however, a few functions, said in this manual not to be “binary safe”, may hand off the strings to libraries that ignore data after a NUL byte.)" Details of the String Type
You may handle output at the presentation layer instead.