Может быть, это что-то очень простое, но я немного потерялся здесь.
У меня есть две разные переменные, одна с запятой и одна с точкой:
<?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".
Как я могу повторить, что независимо от того, с точкой или запятой, он всегда показывает цену с запятой и двумя десятичными знаками?
Если вы хотите сделать что-нибудь математическое (сложить/вычесть), вы должны использовать разумный числовой формат, т.е. 0.85 если ваш ЛОКАЛЬ (подсказка) использует что-то другое, тогда конвертируйте числа только в слое представления
@Andreas, это поле, которое пользователи могут заполнить сами ... Я не могу блокировать точки, потому что они также могут заполнять 1.354,45
Затем вы ограничиваете то, что они заполняют.
Хранение в обоих направлениях - безумие. 1,100 "одна тысяча сто" или "одна и одна десятая"? Вы должны использовать только один формат для хранения.
Затем вам нужно преобразовать число для хранения в базе данных. Я также предполагаю, что вы храните числа в VARCHAR или подобном, что делает простые запросы, такие как SUM(prijs), намного более сложными.
Хорошо, я понимаю, что это не так. Спасибо за ответы, отредактирую поле, что они в чем-то ограничены. Спасибо






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