我试图将计算结果四舍五入到存储在数组中的系列中的下一个最大值。我已经尝试了以下方法,但是当我希望它四舍五入到 16 系列中的下一个值时,10.3 的计算会四舍五入到 10。当 $s = 14.9 时,它可以工作。我究竟做错了什么?
$s = 10.3
// List of standard cable CSA
$csa = array(1,1.5,2.5,4,6,10,16,25,35,50,70,95,120,150,185,240,300,400);
function nextSizeUp($s, $csa) {
$closest = null;
foreach ($csa as $size) {
if ($closest === null || abs($s - $closest) > abs($size - $s)) {
$closest = $size;
}
}
return $closest;
}
echo nextSizeUp($s,$csa);
Run Code Online (Sandbox Code Playgroud)