right,0表示相等,-1表示left= 0) { return $formatted; } // 返回0.00格式 return $scale > 0 ? '0.' . str_repeat('0', $scale) : '0'; } /** * 计算百分比 * @param string|float|int $amount * @param string|float|int $percentage * @param int $scale * @return string */ public static function percentage($amount, $percentage, $scale = self::DEFAULT_SCALE) { return self::div(self::mul($amount, $percentage, $scale + 2), '100', $scale); } /** * 检查金额是否大于0 * @param string|float|int $amount * @return bool */ public static function isPositive($amount) { return self::comp($amount, '0') > 0; } /** * 检查金额是否等于0 * @param string|float|int $amount * @return bool */ public static function isZero($amount) { return self::comp($amount, '0') === 0; } /** * 获取两个金额中的最大值 * @param string|float|int $left * @param string|float|int $right * @param int $scale * @return string */ public static function maxValue($left, $right, $scale = self::DEFAULT_SCALE) { return self::comp($left, $right, $scale) >= 0 ? self::format($left, $scale) : self::format($right, $scale); } /** * 获取两个金额中的最小值 * @param string|float|int $left * @param string|float|int $right * @param int $scale * @return string */ public static function minValue($left, $right, $scale = self::DEFAULT_SCALE) { return self::comp($left, $right, $scale) <= 0 ? self::format($left, $scale) : self::format($right, $scale); } }