PHP VERSION: 8.2.18
json_preserve_fractional_part.php
<?php
// jsond vs. json extension
// https://wiki.php.net/rfc/json_preserve_fractional_part
// // Currently
echo json_encode(10.0); // Output 10
echo PHP_EOL;
echo json_encode(10.1); // Output 10.1
echo PHP_EOL;
var_dump(json_decode(json_encode(10.0))); // Output int(10)
var_dump(10.0 === json_decode(json_encode(10.0))); // Output bool(false)
echo PHP_EOL;
// Proposed
echo json_encode(10.0); // Output 10
echo PHP_EOL;
echo json_encode(10.1); // Output 10.1
echo PHP_EOL;
echo json_encode(10.0, JSON_PRESERVE_ZERO_FRACTION); // Output 10.0
echo PHP_EOL;
echo json_encode(10.1, JSON_PRESERVE_ZERO_FRACTION); // Output 10.1
echo PHP_EOL;
var_dump(json_decode(json_encode(10.0, JSON_PRESERVE_ZERO_FRACTION))); // Output double(10)
var_dump(10.0 === json_decode(json_encode(10.0, JSON_PRESERVE_ZERO_FRACTION))); // Output bool(true)
echo PHP_EOL;
Output
10
10.1
int(10)
bool(false)
10
10.1
10.0
10.1
float(10)
bool(true)
SOURCE CODE