<?php
class DataHelp{
/**
* @param $number
* @return string
* 转化为分
*/
public static function convertCent($number) {
$number = bcmul($number, 100);
return $number;
}
/**
* @param $number
* @return string
* 转化元并保留2位小数
*/
public static function convertYuan($number) {
$new_number = bcdiv($number, 100, 2);
return $new_number;
}
/**
* 高精度加法
*/
public static function add($number1,$number2){
return bcadd($number1,$number2);
}
/**
* 高精度减法
*/
public static function sub($number1,$number2){
return bcsub($number1,$number2);
}
/**
* 高精度乘法
*/
public static function mul($number1,$number2){
return bcmul($number1,$number2);
}
/**
* 高精度除法
*/
public static function div($number1,$number2){
return bcdiv($number1,$number2);
}
/**
* 银行家算法
* @param $num
* @param $precision
* @return float|int
*/
public static function roundBank($num, $precision){
$pow = pow(10, $precision);
//判断不进1的情况(五后为0且为偶)
if ( (floor($num * $pow * 10) % 5 == 0) &&
(bccomp(floor($num * $pow * 10), $num * $pow * 10,5) == 0) &&
(floor($num * $pow) % 2 == 0) ) {
return floor($num * $pow) / $pow;
} else {
return round($num, $precision);
}
}
/**
* return
* @param $input /计算的数字 单位元
* @param int $bit /保留的位数 默认2位
* @return float /返回数字单位为元
*/
public static function round_round_percent($input, $bit = 2){
//参数验证
if($input < 0){
return $input;
}
return round($input, $bit);
}
}