对价格进行向上取整

浏览:1368 最后更新:2020-07-09 11:44 分类:函数 关键字: 向上取整
/**
 * 对价格进行向上取整
 * @param $price    价格
 * @param $decimal  保留小数位数
 */
function upDecimal($price, $decimal=2){
    //取整入1
    if (empty($decimal)) {
        return ceil($price);
    }

    $price2 =  explode('.', $price);
    $price1 = $price2[1] ?? 0;
    $price0 = $price2[0] ?? 0;
    $sublen = strlen($price1);
    if ($sublen < $decimal) {
        $decimal = $sublen;
    }
    //没有小数入1
    if (empty($price1)) {
        return ceil($price);
    }
    $subnum = bcsub($sublen, $decimal);

    //计算小数
    $powsub = bcpow(10, $subnum);
    $price1 = bcdiv($price1, $powsub, $sublen);
    $price1 = ceil($price1);
    $powint = bcpow(10, $decimal);
    $price1 = bcdiv($price1, $powint, $decimal);

    //返回结果
    return bcadd($price0, $price1, $decimal);
}
评论( 相关
后面还有条评论,点击查看>>