LEN

PHP 精度进位方法
精度处理 函数 进位/取整方法 <?php /** * File Name: test.php * A...
扫描右侧二维码阅读全文
18
2019/09

PHP 精度进位方法

精度处理 函数 进位/取整方法

<?php
/**
 * File Name: test.php
 * Author: len
 * Mail: i@91coder.org
 * Created Time: Wed Sep 18 14:48:47 2019
 */

function priceTool($price, $pricePrecision, $isCarry = false)
{
    list($int, $float) = explode('.', $price);

    if (!$isCarry) return bcadd($price, 0, $pricePrecision);

    $float = rtrim($float, '0');
    if (!$float) {
        return bcadd($price, 0, $pricePrecision);
    }

    $len = $pricePrecision - strlen($float);
    if ($len < 0) {
        $float = '1' . substr($float, 0, $pricePrecision);
        $float = substr(strval(++$float), 1, $pricePrecision);
    } else {
        $float = $float . str_repeat('0', $len);
    }

    return implode('.', [$int, $float]);
}

echo priceTool('20.123', 2, true), PHP_EOL;

亲测有效 , 方法不是最优 还请见谅

最后修改:2019 年 09 月 18 日 04 : 36 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论