当前位置:

php格式化数字为’w’,php格式化金额函数

本文最后更新于2022-07-27,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!

温馨提示:本文共2503个字,读完预计7分钟。

程序代码如下:
/**
* 格式化金额
* @param int $money
* @param int $len
* @param string $sign
* @return string
*/

function formatMoney($money, $len=2, $sign='¥'){
    $negative = $money > 0 ? '' : '-';
    $int_money = intval(abs($money));
    $len = intval(abs($len));
    $decimal = '';//小数
    if ($len > 0) {
        $decimal = '.'.substr(sprintf('%01.'.$len.'f', $money),-$len);
    }
    $tmp_money = strrev($int_money);
    $strlen = strlen($tmp_money);
    for ($i = 3; $i < $strlen; $i += 3) {
        $format_money .= substr($tmp_money,0,3).',';
        $tmp_money = substr($tmp_money,3);
    }
    $format_money .= $tmp_money;
    $format_money = strrev($format_money);
    return $sign.$negative.$format_money.$decimal;
}

/**
* 格式化数字 为 'w'
* @param $number
* @return string
*/

function formatNumber($number)
{
    if (empty($number) || !is_numeric($number)) 
        return $number;
    $unit = "";
    if ($number > 10000) {
        $leftNumber = floor($number / 10000);
        $rightNumber = round(($number % 10000) / 10000, 2);
        // $rightNumber = bcmul(($number % 10000) / 10000, '1', 2);
        $number = floatval($leftNumber + $rightNumber);
        $unit = "W";
    } else {
        $decimals = $number > 1 ? 2 : 6;
        $number = (float)number_format($number, $decimals, '.', '');
    }
    return (string)$number . $unit;
}

 

调用示例:

$formatNumber['a'] = formatNumber(123456789);
$formatNumber['b'] = formatNumber(123);
$formatNumber['c'] = formatNumber(1234);
$formatNumber['d'] = formatNumber(12345);
$formatMoney['a1'] = formatMoney(123456789,1,'$');
$formatMoney['a'] = formatMoney(123456789);
$formatMoney['b1'] = formatMoney(-1235,1,'$');
$formatMoney['b'] = formatMoney(-1235);
$formatMoney['c'] = formatMoney(123456.789);
$formatMoney['d'] = formatMoney(-123456.789);

结果:

{
    "status": "success",
    "code": 200,
    "message": "成功",
    "data": {
        "formatNumber": {
            "a": "12345.68W",
            "b": "123",
            "c": "1234",
            "d": "1.23W"
        },
        "formatMoney": {
            "a1": "$123,456,789.0",
            "a": "¥123,456,789.00",
            "b1": "$-1,235.0",
            "b": "¥-1,235.00",
            "c": "¥123,456.79",
            "d": "¥-123,456.79"
        }
    },
    "error": {}
}

本文链接:,转发请注明来源!
评论已关闭。