大家好我想用php number_format格式化输入数字范围
点应该是3位数的乘数,最后两位(如果在输入范围内可用)数字应该带有逗号分隔符
输出应该按照荷兰语格式,并且点应该是3位数的乘数,最后两位数应该用逗号分隔符
喜欢,这里有链接,您可以put any input value from above list in textbox 获得输出,如下所示
我正在使用的代码
echo numberFormat('12345');
function numberFormat($num)
{
return preg_replace("/(?<=\d)(?=(\d{3})+(?!\d))/",".",$num);
}
但它不能与我的输入概率(4),(5),(6)一起使用以匹配输出。
答案 0 :(得分:2)
我认为是这样的:
$number = 1234.56
echo number_format($number, 2, ',', '.');
关于输入哟可以检查和所有“。”删除它和“,”替换为“。”
$number = "123.456,78";
$temp = str_replace(".", "", $number);
$temp2 = str_replace(",", ".", $temp);
echo number_format($temp2, 2, ',', '.');
我希望它有所帮助
答案 1 :(得分:1)
这与@Emesto解决方案非常相似,但强制进入一个数字:
$num = '123.456.789,50';
$n = str_replace('.', '', $num);
$n = str_replace(',', '.', $n);
# $n is no longer a string
$n = $n + 0;
# so it should work fine in number_format
echo number_format($n,2,',','.');
PS:我刚测试了这段代码,以确保它有效。
答案 2 :(得分:0)
number_format($input,2,',','.');
应该这样做。
答案 3 :(得分:0)
$temp=number_format((float)$number, 2, '.', '');
$inter =number_format($temp,2);
$temp1=str_replace(',','.',$inter);
$final=substr_replace($temp1,',',-3,1);
echo"$final";
希望有所帮助