8[任意の数字]のプレフィックスに対して関数が機能しません。
入力:970出力:$ 9.70
入力:870出力:$ 870
入力:800出力:$ 800
function toMoney( $val, $symbol = '$', $r = 2 ) {
$n = $val;
$c = is_float($n) ? 1 : number_format( $n , $r );
$d = '.';
$t = ',';
$sign = ( $n < 0 ) ? '-' : '';
$i = $n = number_format( abs( $n ), $r );
$j = ( ( $j = $i.length ) > 3 ) ? $j % 3 : 0;
return $symbol.$sign .( $j ? substr( $i, 0, $j) + $t : '').preg_replace('/(\d{3})(?=\d)/',"$1" + $t,substr($i,$j)) ;
}
取得した関数:お金の変換が機能しません
上記のエラーは以下で修正されました
function toMoney( $val, $symbol = '$', $r = 2 ) {
$n = $val;
$c = is_float($n) ? 1 : number_format( $n , $r );
$d = '.';
$t = ',';
$sign = ( $n < 0 ) ? '-' : '';
$i = $n = number_format( abs( $n ), $r );
$j = ( ( $j = strlen($i) ) > 3 ) ? $j % 3 : 0;
return $symbol.$sign .( $j ? substr( $i, 0, $j) + $t : '').preg_replace('/(\d{3})(?=\d)/',"$1" + $t,substr($i,$j)) ;
}