нужна помощь в формате числа PHP - PullRequest
2 голосов
/ 03 февраля 2012

Привет всем, я пытаюсь отформатировать диапазон ввода чисел с помощью php number_format

ВХОД вероятности

  1. 1234
  2. 12345
  3. 123456789
  4. 123456789,50
  5. 123.45,00
  6. 123.456.78,50

ВЫХОД должен быть

точка должна быть в множителе 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

вывод должен быть в соответствии с голландским форматом, точка должна быть в множителе 3 цифры, а последние две цифры должны поставляться с разделителем запятых

вроде, вот ссылка, по которой вы можете поместить любое входное значение из вышеприведенного списка в текстовое поле , вы можете получить вывод, как показано ниже

код, который я использую

echo numberFormat('12345');

function numberFormat($num)
{
     return preg_replace("/(?<=\d)(?=(\d{3})+(?!\d))/",".",$num);
}

но он не будет работать с (4), (5), (6) из моей входной вероятности совпадения с выходными.

Ответы [ 4 ]

2 голосов
/ 03 февраля 2012

Ну, я думаю, это так:

$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 голос
/ 03 февраля 2012

Это очень похоже на решение @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: я только что проверил этот код, чтобы убедиться, что он работает.

0 голосов
/ 03 февраля 2012
$temp=number_format((float)$number, 2, '.', '');

$inter =number_format($temp,2);

$temp1=str_replace(',','.',$inter);
$final=substr_replace($temp1,',',-3,1);

echo"$final";

Надеюсь, это поможет

0 голосов
/ 03 февраля 2012
number_format($input,2,',','.');

Это должно сделать это.

...