Hi Maté,

I was reviewing your Query Parameter RFC as I was also checking the new CSV
extension RFC around Type Conversion and I see that currently at least the
following behaviour around float
will be changed.

$data = [
    'a' => 0.000000000000034,
    'b' => 1.0,
    'c' => 1e-10,
];

echo http_build_query($data), PHP_EOL;
// a=3.4E-14&b=1&c=1.0E-10
echo json_encode($data);
// {"a":3.4e-14,"b":1,"c":1.0e-10}

with the browsers implementations using URLSearchParams I get

const q = new URLSearchParams({
    'a': 0.000000000000034,
    'b': 1.0,
    'c': 1e-10,
});
console.log(q.toString())
// a=3.4e-14&b=1&c=1e-10

Maybe the conversion rules difference Uppercase/lowercase for
scientific notation regarding floats should be expressed in the RFC
to avoid surprises.

Best regards,
Ignace

Reply via email to