Как ты мне дорог․ HELP

let calculateExpenses = Math.round(netSalary*(contributions+100)/(100-incomeTax));

или
let calculateExpenses = netSalary => Math.round(netSalary*1.49425); :smiley:

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
вот тут разжевано

1 лайк

Дошло)) Спасибо!

Мой вариант

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;
}

Помогите, пожалуйста, разобраться, чего я не понимаю: вроде считаю с калькулятором, логика-то верная, почему функция не считает?
Screenshot_2020-06-24 Функции

Добрый день!
ContributionsAmount b является нужным ответом, так как beforeTax является “грязной зарплатой” (чистая +НДФЛ), к которой вы прибавляете прочие выплаты.

В примере ошибочка? он просто считает +30%(1.3) от net. Или лыжи не едут?

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);
}
1 лайк

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/100
contributions));
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);
}