場景
- 我們公司的客戶是電商,我們在處理金額的時候,需要將金額截取到小數點後兩位,其餘部分捨去。
四捨五入會導致客戶發現自己賬戶的金額少了, 所以不能使用四捨五入的算法
解決
- 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);
}
}