PHP числовой формат точек и запятых

#php #numbers #number-formatting #price

#php #числа #форматирование чисел #Цена

Вопрос:

Может быть, это что-то очень простое, но я здесь немного заблудился.

Я получил две разные переменные, одну с запятой, а другую с точкой:

 <?php
$price1 = "0,85";
$price2 = "0.85";

echo number_format((float)$price1, 2, ',', '');
// display as 0,85

echo number_format((float)$price2, 2, ',', '');
// display as 0,00
?>
  

Я привел этот пример, чтобы сделать его более понятным, но в реальном коде это выглядит так:

 <?php
echo number_format((float)$prijs, 2, ',', '');
?>
  

И цена может храниться в базе данных как «0,85» или «0,85».

Как я могу повторить, что независимо от того, с точкой это или с запятой, это всегда показывает цену с запятой и 2 десятичными знаками?

Комментарии:

1. Почему вы сохраняете оба способа? Это нарывается на неприятности. Что, если кто-то введет 3,500.50 или 3.500,50 оба значения действительны в разных частях мира. И это всего лишь два примера.

2. Если вы хотите выполнить что-либо математическое (сложить / вычесть), вы должны использовать разумный формат чисел, т.е. 0.85 Если ваш ЯЗЫК (подсказка) использует что-то другое, тогда преобразуйте числа только на уровне представления

3. @Andreas это поле пользователи могут заполнить сами… Я не могу блокировать точки, потому что они также могут заполнить 1.354,45

4. Затем вы ограничиваете то, что они заполняют.

5. Хранить оба способа — это безумие. 1,100 Это «тысяча сто» или «одна и одна десятая»? Вы должны использовать только один формат для хранения.