编程语言

PHP 精度进位方法

By karp 2557 Views 1 MIN READ 0 Comments

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

<?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;

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

本文由 karp 原创

采用 CC BY-NC-SA 4.0 协议进行许可

转载请注明出处:https://www.ikarp.top/index.php/archives/401.html

TAGS: php

0 COMMENTS