小数中指定位数进舍
PHP中的两个函数 ceil() 和 floor() 方法仅能保存整数位,在这个基础上做了下扩展实现了可以指定小数位数的ceil和floor。
ceil_for_decimal()
floor_for_decimal()
1. 舍去指定位数后面的小数
/**
* 舍去指定位数后面的小数
* @param float $float 需要操作的小数
* @param integer $num 保留的小数位数
*/
function floor_for_decimal($float, $num = 0)
{
$float = (float)$float;
// 转为字符串
$str_float = (string)$float;
// 获取小数点位置
$index_dot = strpos($str_float,'.');
// 没有小数则返回
if ($index_dot == false) return $float;
if (strlen(explode('.',$str_float)[1]) <= $num) return $float;
// float小数点右移动num位
$new_float = $float * pow(10,$num);
// 取整
$floor = floor($new_float);
// 小数点左移num位
return $floor / pow(10,$num);
}
2. 舍去指定位数后面的小数
/**
* 指定位数后面的小数进一舍去
* @param float $float 需要操作的小数
* @param integer $num 保留的小数位数
*/
function ceil_for_decimal($float, $num = 0)
{
$float = (float)$float;
// 转为字符串
$str_float = (string)$float;
// 获取小数点位置
$index_dot = strpos($str_float,'.');
// 没有小数则返回
if ($index_dot == false) return $float;
if (strlen(explode('.',$str_float)[1]) <= $num) return $float;
// float小数点右移动num位
$new_float = $float * pow(10,$num);
// 取整
$floor = ceil($new_float);
// 小数点左移num位
return $floor / pow(10,$num);
}
上一篇:
微信双开
下一篇:
Linux Screen使用
1人点赞