Edit report at https://bugs.php.net/bug.php?id=53735&edit=1
ID: 53735 Comment by: martin at tajur dot ee Reported by: mortenskyt at gmail dot com Summary: NumberFormatter returns NaN when converting float point Status: Open Type: Bug Package: I18N and L10N related Operating System: MacOS X 10.6.6 PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: The exact same thing happens on all Debian Squeeze installations, given that php5- intl bundle is installed from the default debian package sources. The error appears right after switching locale to something other than default ("en", presumably) and trying to format a number with a comma using NumberFormatter. I was able to fix the issue on Debian Lenny by manually downgrading ICU library to 3.8 but ICU 3.8 does not work on Squeeze which raises importance of this issue even more. Previous Comments: ------------------------------------------------------------------------ [2011-01-24 01:36:31] s...@php.net I works for me with ICU 4.3.4. Maybe they broke something in 4.6... May be related to this ticket: http://bugs.icu-project.org/trac/ticket/6711 ------------------------------------------------------------------------ [2011-01-22 13:40:59] mortenskyt at gmail dot com Hello again, On my Mac with PHP 5.3.5 from Macports: Internationalization support => enabled version => 1.1.0 ICU version => 4.6 (same version on non-working FreeBSD PHP 5.3.4-machine) The FreeBSD-machine with PHP 5.3.3, which works with no issues: Internationalization support => enabled version => 1.0.3 ICU version => 3.8.1 ------------------------------------------------------------------------ [2011-01-22 08:41:40] s...@php.net Works for me in 5.3 on Mac OS X. Which ICU version do you have (check phpinfo())? ------------------------------------------------------------------------ [2011-01-13 14:46:59] mortenskyt at gmail dot com Description: ------------ In PHP 5.3.5, giving float point values to numfmt_format doesn't work when setlocale is set to a country using comma instead of dot in floating point. Also does not work in PHP 5.3.4 (FreeBSD) DOES work on 5.3.3 (FreeBSD) Perhaps interesting notes from my configuration: intl Internationalization support => enabled version => 1.1.0 ICU version => 4.6 Directive => Local Value => Master Value intl.default_locale => no value => no value intl.error_level => 0 => 0 Test script: --------------- <?php $fmt = numfmt_create("da_DK", \NumberFormatter::CURRENCY); echo numfmt_format($fmt, 5.5)."\n"; setlocale(LC_ALL, "da_DK.UTF-8"); echo numfmt_format($fmt, 5.5)."\n"; echo numfmt_format($fmt, "5,5")."\n"; Expected result: ---------------- 5,50 kr 5,50 kr 5,00 kr Actual result: -------------- 5,50 kr NaN 5,00 kr ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=53735&edit=1