数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

金额常用处理操作,从v2.5.12版本起支持,依赖\x\common\Money组件。

金额转简体汉字

$money = -1000200200.7236;
var_dump(\x\common\Money::toSimplified($money));

// 输出
负十亿零二十万零二百元七角二分三厘六毫

金额转繁体汉字

$money = -1000200200.7236;
var_dump(\x\common\Money::toTraditional($money));

// 输出
负拾亿零贰拾万零贰佰元柒角贰分叁厘陆毫

汉字转金额

$str = '负十亿零二十万零二百元七角二分三厘六毫';
var_dump(\x\common\Money::toChinese($str));
// 输出
-1000200200.7236

$str = '负拾亿零贰拾万零贰佰元柒角贰分叁厘陆毫';
var_dump(\x\common\Money::toChinese($str));
// 输出
-1000200200.7236

自动兼容繁体、简体汉字金额。

两个金额是否一致

$str1 = '负十亿零二十万零二百元七角二分三厘六毫';
$str2 = '负拾亿零贰拾万零贰佰元柒角贰分叁厘陆毫';

$money1 = \x\common\Money::toChinese($str1);
$money2 = \x\common\Money::toChinese($str2);

var_dump(\x\common\Money::equal($money1, $money2));
// 输出
true

金额千分位格式化

$money = -1000200200.7236;
var_dump(\x\common\Money::format($money));

// 输出
-1,000,200,200.72

金额格式校验

$money = -1000200200.7236;
var_dump(\x\common\Money::verify($money));

// 输出
true

元转分

$money = 100.7236;
// 保留2位小数,默认也是保留2位
var_dump(\x\common\Money::toCent($money, 2));

// 输出
10072.36

分转元

$money = 10072.36;
// 保留2位小数,默认也是保留2位
var_dump(\x\common\Money::toDollar($money, 2));

// 输出
100.72

保留小数位[不四舍五入]

$money = 100.7236;
// 保留3位小数,默认保留2位
var_dump(\x\common\Money::round($money, 3));

// 输出
100.723

保留小数位[四舍五入]

$money = 100.7236;
// 保留3位小数,默认保留2位
var_dump(\x\common\Money::round($money, 3, true));

// 输出
100.724

保留整数[不四舍五入]

$money = 100.7236;
// 保留3位小数,默认保留2位
var_dump(\x\common\Money::round($money, 0));

// 输出
100

保留整数[四舍五入]

$money = 100.7236;
// 保留3位小数,默认保留2位
var_dump(\x\common\Money::round($money, 0, true));

// 输出
101

金额分割成随机红包

// 100元
$money = 100;
// 分成20个红包
$num = 20;
// 最小2.5元
$minMoney = 2.5;
// 生成
var_dump(\x\common\Money::redPacket($money, $num, $minMoney));

// 输出
array(20) {
  [0]=>
  float(3.12)
  [1]=>
  float(5.75)
  [2]=>
  float(7.01)
  [3]=>
  float(3.77)
  [4]=>
  float(4.26)
  [5]=>
  float(4.3)
  [6]=>
  float(7.09)
  [7]=>
  float(4.67)
  [8]=>
  float(4.74)
  [9]=>
  float(4.62)
  [10]=>
  float(3.79)
  [11]=>
  float(2.72)
  [12]=>
  float(2.76)
  [13]=>
  float(6.15)
  [14]=>
  float(6.55)
  [15]=>
  float(6.58)
  [16]=>
  float(4.86)
  [17]=>
  float(8.05)
  [18]=>
  float(5.4)
  [19]=>
  float(3.81)
}

生成随机小数(不四舍五入)

依赖类:\x\common\Money
方法名:randomFloat()
返回值:float

参数:

  • int $min

    • 功能:最小数
    • 默认值0
  • int $max

    • 功能:最大数
    • 默认值1
  • int $decimal

    • 功能:保留小数位
    • 默认值2

使用示例:

\x\common\Money::randomFloat(0.3, 10.12, 3);

SW-X

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录