需要PHP数字格式的帮助

时间:2012-02-03 06:25:25

标签: php number-formatting

大家好我想用php number_format格式化输入数字范围

INPUT概率

  1. 1234
  2. 12345
  3. 123456789
  4. 123456789,50
  5. 123.45,00
  6. 123.456.78,50
  7. OUTPUT应为

    点应该是3位数的乘数,最后两位(如果在输入范围内可用)数字应该带有逗号分隔符

    1. 1.234,00
    2. 12.345,00
    3. 123.456.789,00
    4. 123.456.789,50
    5. 12.345,00
    6. 12.345.678,50
    7. 输出应该按照荷兰语格式,并且点应该是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)一起使用以匹配输出。

4 个答案:

答案 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";

希望有所帮助