Собственно, была необходимость такая странная, что бы скидка считалась не от суммы заказа, а от цены каждой позиции. столкнулся с тем, что как то странно работал round() в mysql, а точнее из скрина ниже видно, что 47555,5 - 3% = 46128,835 и первые два под итога округляет вроде php, а последний рассчитывается запросом из базы и апдейтом пишется в total_price таблицы s_orders. В итоге видим такую картину Суть проблемы в том, что в таблицах используется тип float(10,2). Если везде для дробных значений поменять тип на decimal(10,2) - такой проблемы не будет! Но я думаю это не очень хорошо