let calculateExpenses = Math.round(netSalary*(contributions+100)/(100-incomeTax));
или
let calculateExpenses = netSalary => Math.round(netSalary*1.49425);
let calculateExpenses = Math.round(netSalary*(contributions+100)/(100-incomeTax));
или
let calculateExpenses = netSalary => Math.round(netSalary*1.49425);
var incomeTax = 13;
var contributions = 30;
var calculateExpenses = function(netSalary) {
grossSalary = netSalary / (1 - 0.01 * incomeTax);
totalCosts = Math.round((grossSalary / 100 * contributions) + grossSalary);
return totalCosts;
}
Почти 2 года прошло,боже))
let incomeTax = 13;
let contributions = 30;
let calculateExpenses = function (netSalary) {
let darkSalary = netSalary / ((100 - incomeTax) / 100);
let allContributions = darkSalary * contributions / 100;
let allCost = Math.round(darkSalary + allContributions);
return allCost;
}
@Hierumo у меня вопрос: как произошло сокращение, никак не соображу(((
формула без сокращения должна выглядеть так?
netSalary 100 + contributions
---------------------------- * ------------------------------
(100 - incomeTax) * 100 100 - incomeTax
если не сокращать, то
netSalary / ( (100 - incomeTax) / 100 ) * (100 + contributions) / 100
вот тут разжевано
Дошло)) Спасибо!
var incomeTax = 13;
var contributions = 30;
var calculateExpenses = function (netSlary) {
var expensesWithTax = (netSlary * 100) / (100 - incomeTax);
var netContributions = (expensesWithTax / 100) * contributions;
var finalExpenses = Math.round(expensesWithTax + netContributions);
return finalExpenses;
}
Помогите, пожалуйста, разобраться, чего я не понимаю: вроде считаю с калькулятором, логика-то верная, почему функция не считает?
Добрый день!
ContributionsAmount b является нужным ответом, так как beforeTax является “грязной зарплатой” (чистая +НДФЛ), к которой вы прибавляете прочие выплаты.
let incomeTax = 13;
let contributions = 30;
let calculateExpenses = function(netSalary) {
return Math.round(netSalary/(100-incomeTax)*(100+contributions));
}
чуть уменьшил формулу.
function calculateExpenses (netSalary) {
let expenses = Math.round((netSalary / 87 * 100) * 1.3);
return expenses
}
ну или
let calculateExpenses = function (netSalary) {
let incomeTax = 13;
let contributions = 30;
let blackSalary = (netSalary / (100 - incomeTax)) * 100;
let bonusMoney = blackSalary * (contributions / 100);
return Math.round(blackSalary + bonusMoney);
}
В математических формулах не силён, поэтому решил немного неотёсанно. Зато работает.)
let incomeTax = 13;
let contributions = 30;
let dirtySalaryFirst = 100000;
let netSalaryFirst = dirtySalaryFirst - (dirtySalaryFirst / 100 * incomeTax);
let calculateExpenses = function (netSalary) {
let dirtySalary = netSalary * dirtySalaryFirst / netSalaryFirst;
let contr = dirtySalary / 100 * contributions;
return Math.round(dirtySalary + contr);
}
Да немного не по теме но подскажите пожалуйста, во втором цикле где number.splice(i,1), записанный в number 1,5 number.splice(i,1) это метод удаляет получается да? Именно тут мне непонятно
Вижу тут все пишут дэрти и блэк салари, аж смешно немного стало) Так-то правильно писать зарплата брутто/гросс, странно что большинство используют уличные термины.
Вот мое решение, добавляю так сказать в общую кучу:
let incomeTax = 13;
let contributions = 30;
let calculateExpenses = function(netSalary) {
//перевод значения нетто в 1 % значения брутто, с последующим умножением на 100 + взносы
let bruttoSalary = netSalary / (100 - incomeTax) * (100 + contributions);
return Math.round(bruttoSalary);
}
let calculateExpenses = netSalary => Math.round(netSalary * 100 / (100 - incomeTax) * (100 + contributions) / 100 )
Рабочий код, проходит проверку.
let incomeTax = 13;
let contributions = 30;
let calculateExpenses = function(netSalary){
let salary = Math.round(netSalary + (netSalary/(100-incomeTax)incomeTax));
salary = Math.round(salary + (salary/100contributions));
return salary;
};
Самое простое - это изначально упростить всё и прийти к этой формуле - (1.3 / 0.87) * netSalary)
let incomeTax = 13;
let contributions = 30;
function calculateExpenses(netSalary) {
return total = Math.round((1.3 / 0.87) * netSalary);
}
let incomeTax = 13;
let contributions = 30;
function calculateExpenses(netSalary) {
return total = Math.round((1.3 / 0.87) * netSalary);
}