Я строю довольно тяжелую тележку для расчетов для магазина тканей и обнаружил, что мне нужно сделать расчет длины, введенной пользователем * базовая цена за метр,но затем проверяем результат, чтобы убедиться, что он кратен длине шаблона. Если это не кратное число, мне нужно найти ближайшее кратное длины шаблона и изменить результат на него.
Мне также нужно иметь возможность выполнять точно такие же вычисления в PHP, но если кто-нибудь может мне помочь с помощью математики я могу перенести все, что нужно перевести самостоятельно.
Я использую jQuery 1.6.2 и уже выполнил первую часть расчетов, мне просто нужно проверить результат (метры * цена) по сравнению с длина паттерна.
Любая помощь будет принята с благодарностью
РЕДАКТИРОВАТЬ: Все эти вычисления включают в себя 2 десятичных знака для цены и длины паттерна. Вводимая пользователем длина также может содержать десятичные дроби.
Используйте оператор %
(модуль) в Javascript и PHP, который возвращает остаток, когда a
делится на b
в a % b
. Остаток будет равен нулю, когда a
кратно b
.
Пример.
//Javascript
var result = userLength * basePrice; //Get result
if(result % patternLength){ //Check if there is a remainder
var remainder = result % patternLength; //Get remainder
if(remainder >= patternLength / 2) //If the remainder is larger than half of patternLength, then go up to the next mulitple
result += patternLength - remainder;
else //Else - subtract the remainder to go down
result -= remainder;
}
result = Math.round(result * 100) / 100; //Round to 2 decimal places