我在ubuntu 12.04上使用php 5.6.8,尝试json_encode($arr, JSON_PRESERVE_ZERO_FRACTION)
但JSON_PRESERVE_ZERO_FRACTION
未定义。我想也许它是php-json 1.3.7+
引入的,所以我试着sudo apt-get install --only-upgrade php5-json
,它告诉我我有最新版本的php-json
。
我正在使用Ondřej Surý PPA作为来源。任何人都知道什么是错的?
修改
我还在没有任何应用程序(php -a
)的情况下检查了php,这个常量仍未定义。所以我认为这与应用无关。
答案 0 :(得分:2)
应该在PHP 5.6.6+中提供。
如果您的某些工具抱怨缺少常量,您可以添加polyfill:
if(!defined('JSON_PRESERVE_ZERO_FRACTION'))
{
define('JSON_PRESERVE_ZERO_FRACTION', 1024);
}
答案 1 :(得分:0)
我知道这不是解决方案...只是节省一些时间
function precise_round(num, decimals) {
var t = Math.pow(10, decimals);
return (Math.round((num * t) + (decimals>0?1:0)*(Math.sign(num) * (10 / Math.pow(100, decimals)))) / t).toFixed(decimals);
}