<?php namespace app\service; /** * 精准计算 依赖bc库 * * Class Math * @package app\service */ class Math { // 加法 public static function add(string $num1, string $num2, $scale = 2): string { return bcadd($num1, $num2, $scale); } // 减法 public static function sub(string $num1, string $num2, $scale = 2): string { return bcsub($num1, $num2, $scale); } // 乘法 public static function mul(string $num1, string $num2, $scale = 2): string { return bcmul($num1, $num2, $scale); } // 除法 public static function div(string $num1, string $num2, $scale = 2): string { return bcdiv($num1, $num2, $scale); } // 求余、取模 public static function mod(string $num1, string $num2, $scale = 2): string { return bcmod($num1, $num2, $scale); } // 分转元 public static function fen2Yuan(int $amount): string { return self::div($amount, '100'); } // 元转分 public static function yuan2Fen(string $amount, int $scale = 0): string { return self::mul($amount, '100', $scale); } // 格式化 默认保留小数点后两位 public static function format($amount, int $scale = 2): string { return number_format($amount, $scale, '.', ''); } }