JS Third Digit Issue


2

Здравейте, какво правя грешно? Кодът от долу ми връща false 7.01. Защо нещата след дробната запетая не изчезват?

function solve(args) {

var x = args[0],
     digit = (x / 100) % 10;

if (digit == 7) {

console.log("true")

}

else {

console.log("false" + digit)

}

}

solve(['701'])




Отговори



0
Пробвай така:
function solve(args) { var x = +args[0]; var digit = parseInt(x / 100) % 10; if (digit === 7) { console.log("true"); } else { console.log("false " + digit); } }
Единствената разлика е, че превръщам x / 100 в цяло число с parseInt.

от nivalen292 (273 точки)


0

Мерси колега. И по твоят начин работи. След малка борба установих,че може също на мястото на parseInt да се сложи Math.Floor и така го закръгляш надолу и ти показва числото без дробна запетая.



0
А аз да попита, защо въвеждаш параметъра така: ["701"], а не "701". По втория начин не работи очевидно пробвах ама все пак. Защото параметъра е масив ли?

от nivalen292 (273 точки)



0

А може да се разглежда като string и да не се превръщат в числа, а да се гледа какво има на трето място от дясно на ляво. Ей така:

function thirdDig(input){ var inStr = input[0]; if(inStr.length < 3){ return 'false 0'; } else if(+inStr[inStr.length - 3] === 7){ return true; } else{ return 'false ' + inStr[inStr.length - 3]; } } // TEST thirdDig(['701']);


от nhristova (506 точки)


0
Извинявай, а защо слагащ  + отпред на  този израз ..... (+inStr[inStr.length - 3] === 7)


0
Така при изпълнение JS interpretatora превръща стойността в число. Ползвам го вместо да го парсвам.

от nhristova (506 точки)