需要PHP数字格式的帮助吗
大家好,我正在尝试用php number\u格式格式化输入数字范围 输入概率需要PHP数字格式的帮助吗,php,number-formatting,Php,Number Formatting,大家好,我正在尝试用php number\u格式格式化输入数字范围 输入概率 1234 12345 123456789 123456789,50 123.45,00 123.456.78,50 输出应该是 点应该是3位的乘法器,最后两位(如果在输入范围内可用)应该带有逗号分隔符 1.234,00 12.345,00 123.456.789,00 123.456.789,50 12.345,00 12.345.678,50 输出应符合荷兰格式,点应为3位数的乘法器,最后两位数应带有逗号分隔符 这是
echo numberFormat('12345');
function numberFormat($num)
{
return preg_replace("/(?<=\d)(?=(\d{3})+(?!\d))/",".",$num);
}
echo numberFormat('12345');
函数numberFormat($num)
{
返回预更换(“/(?)?
应该可以了。我想是这样的:
$number = 1234.56
echo number_format($number, 2, ',', '.');
关于输入你可以检查和所有的“,”删除它和“,”替换为“
我希望有帮助
$temp=number_format((float)$number, 2, '.', '');
$inter =number_format($temp,2);
$temp1=str_replace(',','.',$inter);
$final=substr_replace($temp1,',',-3,1);
echo"$final";
希望它能有所帮助这与@Emesto解决方案非常相似,但必须包含一个数字:
$temp=number_format((float)$number, 2, '.', '');
$inter =number_format($temp,2);
$temp1=str_replace(',','.',$inter);
$final=substr_replace($temp1,',',-3,1);
echo"$final";
$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:我刚刚测试了这段代码,以确保它能正常工作。我试过了,但是如果我的输入与输入概率的(4)和(5)类似,那么?首先在上分解,
-如果结果有一个元素,继续执行数字格式它。如果它有两个元素,最后一个元素有两个数字,则执行$e[0]+$e[1]/100
($e
是分解的元素)和number\u格式。在所有其他情况下,输入无效。嗨,Ernesto,谢谢你的回答,但我尝试了使用函数numberformat($number){$temp=str\u replace(“.”,“,$number);$temp2=str\u replace(“,”,“,”,$temp);返回number\u格式($temp2,2,“,”,“,”);”)}其中$number=1.234,00我遇到了这个错误“遇到了一个格式不正确的数值”,请您提供帮助,Oks然后在“echo number_format($temp2,2',,',',');”之前添加。添加$temp2=$temp2*1;因此您可以将其更改为数字类型
$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,',','.');