有没有为此目的的图书馆功能,所以我不用手工和TDWTF结束的风险?
echo ceil(31497230840470473074370324734723042.6); // Expected result 31497230840470473074370324734723043 // Prints <garbage>
这将适用于您:
$x = '31497230840470473074370324734723042.9'; bcscale(100); var_dump(bcFloor($x)); var_dump(bcCeil($x)); var_dump(bcRound($x)); function bcFloor($x) { $result = bcmul($x,'1',0); if ((bccomp($result,'0',0) == -1) && bccomp($x,$result,1)) $result = bcsub($result,1,0); return $result; } function bcCeil($x) { $floor = bcFloor($x); return bcadd($floor,ceil(bcsub($x,$floor)),0); } function bcRound($x) { $floor = bcFloor($x); return bcadd($floor,round(bcsub($x,0); }
基本上,它通过乘以零精度找到浮标.
然后它可以通过从总计中减去总数来调用内置函数,然后再重新添加结果来做细节/圆
编辑:固定为-ve数字