Best Answer
Code:
function backToThePast(input) {
let i = 0;
let money = Number(input[i++]);
let year = Number(input[i++]);
let age = 17;
// for (let j = year; j >= 1800; j--) { // does not work, only produced 90%
for (let j = 1800; j <= year; j++) {
if (j % 2 === 0) {
age++;
money -= 12000;
} else {
age++;
money -= 12000 + age * 50;
}
// year--;
}
if (money >= 0) {
console.log(`Yes! He will live a carefree life and will have ${money.toFixed(2)} dollars left.`);
} else {
// console.log(`He will need ${Math.abs(money.toFixed(2))} dollars to survive.`);
console.log(`He will need ${Math.abs(money).toFixed(2)} dollars to survive.`);
}
}
На ред №22 извикайте .toFixed след Math.abs.
console.log(`He will need ${Math.abs(heritage).toFixed(2)} dollars to survive.`)
Проблемът е, че Math.abs не гарантира, че ще получим абсолютната стойност на същото число,
тъй като числата с плаваща запетая са само приблизителни (напр. Math.abs(-0.99) не е гарантирано
да върне 0.99, а може да е 0.9.0001 или 0.8999).
Благодаря за пояснението!