PHP 如何处理金额

藏色散人
藏色散人 转载
2023-04-07 20:58:01 3180浏览

导语

涉及到金额的代码,一定要谨慎处理。刚好最近做了相关的功能,下面大概说一下。

存储

PHP 的浮点数是不能精确计算的,具体的可以看《关于PHP浮点数你应该知道的事情》这篇文章。所幸的是,金额一般不会有太多的小数。那么存储的时候呢,一言以蔽之,以 分 为单位进行存储。在 MySQL 中,以 int 类型存储就行了(视情况选择字段类型)。

计算

上面提到以 分 为单位存储,也就是 1 元存储为 100 分。可以使用 PHP 内置的 BC Math 系列函数进行计算。日后会再写一篇详解。

格式化金额

下面是格式化金额的实例

/**
     * 格式化金额
     * @param $price
     * @return string
     */
    public function formatPrice($price)
    {
        if (!is_numeric($price)) {
            $price = 0;
        }
        return number_format(bcdiv($price, 100, 2), 2);
    }

以上就是PHP 如何处理金额的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除