我有一个包含这样内容的数组
$numbers = array(0.49882,0.20510,0.50669,0.20337,0.45878,0.08703,0.43491,0.74491,0.26344,0.37994);
我需要将上述数组implode()
转换成一个字符串,每个数字都四舍五入到 2 位精度。
由于数组中可能有数百个数字,我如何以最有效的方式实现这一点?
最佳答案
你可以使用 array_map()
在 implode()
之前:
$numbers = array(0.49882,0.20510,0.50669,0.20337,0.45878,0.08703,0.43491,0.74491,0.26344,0.37994);
$serial = implode(',', array_map(function($v){return round($v,2);}, $numbers)) ;
echo $serial ; // 0.5,0.21,0.51,0.2,0.46,0.09,0.43,0.74,0.26,0.38
或者使用number_format()
:
$serial = implode(',', array_map(function($v){return number_format($v,2);}, $numbers)) ;
// 0.50,0.21,0.51,0.20,0.46,0.09,0.43,0.74,0.26,0.38
关于php - 内爆时数组的 round() 内容达到特定的精度水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48734032/