场景
- 我们公司的客户是电商,我们在处理金额的时候,需要将金额截取到小数点后两位,其余部分舍去。
四舍五入会导致客户发现自己账户的金额少了, 所以不能使用四舍五入的算法
解决
- floor实现截取, sprintf实现格式化
/**
* @purpose 保留2位小数但不四舍五入
* @description
* @last_edit_time 2019-12-17
* @last_edit_author
* @author
* @param float $number
* @return float
*/
if (!function_exists('decimal_format')) {
function decimal_format(float $number): float
{
return sprintf('%.2f', floor($number * 100)/100);
}
}