<?php
$input = new \NumberFormatter('lv', \NumberFormatter::DECIMAL);
$input->setAttribute($input::FRACTION_DIGITS, 2); //applies rounding during format
$output = new \NumberFormatter('en', \NumberFormatter::DECIMAL);
$output->setAttribute($output::FRACTION_DIGITS, 2); //applies rounding during format
foreach (['5,77', '5,20', '5,2', '5,00', '5', '0'] as $value) {
echo 'initial value: ';
var_dump($value);
$parsed = $input->parse($value);
echo 'input::parse: ';
var_dump($parsed);
echo 'output::format: ';
var_dump($output->format($parsed));
echo 'input::format: ';
var_dump($input->format($parsed));
echo PHP_EOL;
}
- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- initial value: string(4) "5,77"
input::parse: float(5.77)
output::format: string(4) "5.77"
input::format: string(4) "5,77"
initial value: string(4) "5,20"
input::parse: float(5.2)
output::format: string(4) "5.20"
input::format: string(4) "5,20"
initial value: string(3) "5,2"
input::parse: float(5.2)
output::format: string(4) "5.20"
input::format: string(4) "5,20"
initial value: string(4) "5,00"
input::parse: float(5)
output::format: string(4) "5.00"
input::format: string(4) "5,00"
initial value: string(1) "5"
input::parse: float(5)
output::format: string(4) "5.00"
input::format: string(4) "5,00"
initial value: string(1) "0"
input::parse: float(0)
output::format: string(4) "0.00"
input::format: string(4) "0,00"
preferences:
103.6 ms | 409 KiB | 5 Q