Професионална програма
Loading...
+ Нов въпрос
Axiomatik avatar Axiomatik 1258 Точки
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.`);
    }
}

MartinBG:

На ред №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).

 

0
Neri0817 avatar Neri0817 1 Точки

Благодаря за пояснението! smiley

1