37 lines
865 B
PHP
37 lines
865 B
PHP
|
<?php
|
||
|
declare (strict_types=1);
|
||
|
|
||
|
namespace app\service\util;
|
||
|
|
||
|
use app\service\ConfigService;
|
||
|
use function GuzzleHttp\Psr7\str;
|
||
|
|
||
|
/**
|
||
|
* @author canny
|
||
|
* @date 2023/10/20 15:28
|
||
|
**/
|
||
|
class PriceCalculatorService
|
||
|
{
|
||
|
public static function add($a, $b, $scale = 2): string
|
||
|
{
|
||
|
return bcadd((string)$a, (string)$b, $scale); // 保留两位小数
|
||
|
}
|
||
|
|
||
|
public static function subtract($a, $b, $scale = 2): string
|
||
|
{
|
||
|
return bcsub((string)$a, (string)$b, $scale);
|
||
|
}
|
||
|
|
||
|
public static function multiply($a, $b, $scale = 2): string
|
||
|
{
|
||
|
return bcmul((string)$a, (string)$b, $scale);
|
||
|
}
|
||
|
|
||
|
public static function divide($a, $b, $scale = 2): ?string
|
||
|
{
|
||
|
if (bccomp((string)$b, '0', 2) === 0) {
|
||
|
throw new \Exception('不允许除以零');
|
||
|
}
|
||
|
return bcdiv((string)$a, (string)$b, $scale);
|
||
|
}
|
||
|
}
|