Есть вот такая функция в React:
export const getTotalPrice = state =>{
let totalPrice = 0
state.basket.map((item) => totalPrice = totalPrice + parseFloat(item.price.toFixed(2)) )
return totalPrice
}
По сути я из корзины state.basket
узнаю полную стоимость заказа прибавляя каждый раз item.price
в переменную totalPrice
, числа все ХХ.99
, в данном случае 139.99
, нажимая на кнопку добавить еще один такой элемент стоимость заказа пересчитывается и в результате сложив 13 раз число 139.99
я получаю $1819.8700000000001
.
Что я делаю не так?
Нужно toFixed()
применять к результату
totalPrice = (totalPrice + parseFloat(item.price)).toFixed(2)
Поскольку в двоичной системе невозможно точно представить овердофига дробных чисел, то цены лучше хранить в копейках (-> целые числа) и форматировать при выводе (разделив на 100). Тогда можно сколько угодно раз складывать что угодно и результат всегда будет верным.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
подскажите пожалуйста, как создать таблицу определённого размера(вводит пользователь), после этого пользователь её заполняет, ну а далее...