@ssrdop

Как поступить с float числами при работе с ценами на товары интернет магазина?

Здравствуйте. Делаю интернет магазин и появилась надобность продавать товар и поштучно и по 100 грамм (магазин продуктов). Соответственно, например, считая добавляя товар в корзину у меня идет работа либо с целыми числами, либо с действительными с 1-м знаком после запятой. Как известно есть погрешность компьютерная и я хотел бы узнать какой самый оптимальный способ для работы с данными числами. Пока у меня в выборе 3 способа:
1) умножать на 10, проводить операции, делить на 10
2) Использовать библиотеку для работы с числами большой точности, но здесь она нужна доя 1 знака после запятой
3)либо отдельно работать с числами до запятой и после запятой, проводить действия, и объединять в одно число.
Как поступить?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 2
nazarpc
@nazarpc
Open Source enthusiast
Если хотите качественно оперировать числами с плавающей точкой - то лучше использовать библиотеки BC Math Functions или GMP Functions.
Умножение на 10, приведение к Integer и потом обратно, конечно, будет работать - но, полагаю, весьма сложно будет не запутаться, да и со временем если придется повышать точность то будет ещё тот геморрой (хотя можно попробовать сделать простые обертки вроде add()/sub() и использовать их повсеместно).
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Считать всё в целых копейках, форматировать при выводе на страницу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ZLOFENIX
@ZLOFENIX
Абсолютно поехавший
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы