近日在工作上應該會需要計算金錢分攤,簡單寫了個 PHP 函式備用。
function shareAmount( $amount , $shares ) {
$arr = array();
if ( is_numeric($amount) && is_int($shares) ) {
$precision = is_int($amount) ? 0 : strlen(substr($amount, strpos($amount, '.')+1));
for ( $i = $shares; $i > 0; $i-- ) {
$val = round( $amount / $i , $precision );
array_push( $arr , $val );
$amount -= $val;
}
}
return $arr;
}
執行結果大概像這樣:
// var_dump( shareAmount(101,3) );
array(3) {
[0]=>
float(34)
[1]=>
float(34)
[2]=>
float(33)
}
// var_dump( shareAmount(0.5101,3) );
array(3) {
[0]=>
float(0.17)
[1]=>
float(0.1701)
[2]=>
float(0.17)
}
我在資料庫沒看到大數,所以就沒考慮 BC Math,直接用 is_numeric() 了… :p
7 月 10 2014
[PHP] 自製金錢分攤函式
近日在工作上應該會需要計算金錢分攤,簡單寫了個 PHP 函式備用。
執行結果大概像這樣:
我在資料庫沒看到大數,所以就沒考慮 BC Math,直接用 is_numeric() 了… :p
No related posts.
By Joe Horn • PHP 0 • Tags: PHP