假设计算值为:19.6612111;
想要的目标值:19.67;
使用的向上取整的函数为:ceil(数值);
思路:把有小数的值*需要的小数位数,然后取整,取整后,再进行位数处理;
代码如下:
$float = 19.6612111;
//计算过程
$step1 = $float*100;//先乘100
$step2 = ceil($step1);//对step1的数值向上取整
$step3 = $step2/100;//再直接变成小数,即为目标值
echo $step3; //值为19.67
//编写成函数增强版ceil方法
//$float:需要处理的有小数的值
//$dp: 向上取整的小数位数,默认2位小数
function ceil_pro($float,$dp=2)
{
//str_pad 返回的是字符串,严谨一些前面加“int”转成int类型
$dp_num = (int)str_pad(1,$dp+1,"0",STR_PAD_RIGHT);//$dp=2,即加两个0,为100;
if($dp<1)//非小数取整
{
return ceil($float);//直接取整数,去掉小数
}
else
{
$step1 = $float*$dp_num;//先乘
$step2 = ceil($step1);//对step1的数值向上取整
$out_num = $step2/$dp_num;//再直接变成小数,即为目标值
return $out_num;
}
}
//调用方法
echo ceil_pro(19.6111,2)."<br />";
//结果为:19.62
echo ceil_pro(19.6111,0)."<br />";
//结果为:20