【发布时间】:2011-02-23 18:44:30
【问题描述】:
我正在尝试创建我的一个网站的法语版本。我在页面顶部设置了setlocale(LC_ALL, 'fr_FR');,并使用strftime 以法式风格正确显示日期。
但是我遇到了一些问题。该页面的一部分使用了我从 Web 服务获取的数据。我将返回值分配给这样的 var:
$overallRating = $returnArray['Overall'];
我稍后使用以下代码将其格式化为小数点后 1 位
number_format($overallRating,1)
在英文版中,overallRating 值可能是7.5,并返回一个值,例如7.5(通过number_format 运行它的原因是如果它返回7,我希望它显示7.0)
但是在法语版本中,如果我打印出原始的 $overallRating 值,我会得到 7,5,看起来它已将其翻译成法语。这很好,但如果我通过number_format 运行它,我会收到错误:
Notice: A non well formed numeric value encountered in /sites/index.php on line 250
第 250 行是 number_format 行
我猜想7,5 的翻译搞砸了,但不知道如何解决这个问题...
使用 PHP 5.3 以防有任何新的帮助我
【问题讨论】:
-
这听起来像你的值在其他地方得到了 number_formatted。你100%确定这不会发生吗?你能一步一步追踪值在什么时候被转换吗?
-
虽然我没有在此之前对数字进行 number_formating,但我认为
setlocale正在翻译它,正如我在问题中所说,如果我在通过 number_format 运行它之前打印出法语页面中的 $overallRating显示 7,5(带逗号)。我想这会导致 number_format 失败?
标签: php locale number-formatting