Laravel - Как конвертировать тысячу запятых в десятичное число - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть валюта формы ввода с таким форматом, как этот 1,000.00

, и я хочу сохранить в базе данных в десятичном формате, например, 1000.00

, как изменить ее в контроллере, при сохранении она будет автоматическиизменить на десятичный формат?

$num = '3,500.20';
$formattedNum = number_format($num,  3, '', '');
echo $formattedNum;

Приведенный выше код преобразуется в 3000, а не в 3500.20

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Например, вы можете просто удалить запятую с помощью str_replace(',', '', $num).

Но лучше получить правильное значение прямо из вашего ввода.

Формат ввода не должен влиять на фактическое значение ввода, которое составляет 3500,20, это не выглядит хорошей практикой.

Кроме того, number_format не для преобразования строки в числа, напротив, она делает красивую строку из числа (целое число / число с плавающей запятой).

0 голосов
/ 27 февраля 2019

Вы можете попробовать str_replace для желаемого результата: -

$number = '3,500.20';
$number = str_replace(',', '', $number);
echo $number;

Вывод 3500.20

0 голосов
/ 27 февраля 2019

вы можете использовать str_replace из php, чтобы получить результат:

<?php
     $num = '3,500.20';
     $formattedNum = str_replace(',', '', $num);
     echo $formattedNum;
?>

str_replace Функцию замените пустым значением ',' на ', Чтобы узнать больше о str_replace, вы можетечитать здесь

...