我有这个函数可以将数字转换为印度货币格式。
function IND_money_format($money)
{
$len = strlen($money);
$m = '';
$money = strrev($money);
for($i=0;$i<$len;$i++){
if(( $i==3 || ($i>3 && ($i-1)%2==0) )&& $i!=$len){
$m .=',';
}
$m .=$money[$i];
}
return strrev($m);
}
如果我将整数作为输入而不是小数,则输出正常。 例如:
3 => 3
30 => 30
300 => 300
3000 => 3,000
459600 => 4,59,600
但是如果我给出一个十进制数字,输出就会变坏 例如:
379.50 => 37,9.5
我该如何解决这个问题?
答案 0 :(得分:0)
我不知道这是不是正确的方法,但它现在似乎正在起作用。 我正在做的是
0.5
变为.5
)所以函数变成这样:
public function IND_money_format($money){
$decimal = (string)($money - floor($money));
$money = floor($money);
$len = strlen($money);
$m = '';
$money = strrev($money);
for($i=0;$i<$len;$i++){
if(( $i==3 || ($i>3 && ($i-1)%2==0) )&& $i!=$len){
$m .=',';
}
$m .=$money[$i];
}
$a = strrev($m);
// $a = $decimal;
$decimal = preg_replace("/0\./i", ".", $decimal);
if( $decimal != '0'){
$a = $a.$decimal;
}
return $a;
}
有人可以查看此代码吗?