【发布时间】:2013-02-18 07:44:07
【问题描述】:
函数不适用于带有 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)) ;
}
函数取自:Money conversion not worked
上面的错误在下面更正了
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)) ;
}
【问题讨论】:
-
试了一下,670 美元 670.00 美元,800 美元 800.00 美元
-
但我只得到 800 美元
-
$i.length? PHP 中的符号是什么?此外,您使用+作为字符串连接运算符,而您应该使用.,例如,请参阅您的最后一行。 -
@Sankalp Mishra 请仔细检查您的输入和输出,请告诉我您的 PHP 版本。
-
有人建议修复上述功能