Math.round vs parseInt
Имейте быстрый вопрос JS. В чем разница между math.round и parseInt?
Я сделал JS script, чтобы суммировать обратные номера запрошенных номеров:
<script type="text/javascript">
var numRep = prompt("How many repetitions would you like to run?");
var sum = 0;
var count = 0;
var i = 1; //variable i becomes 1
while (i <= numRep) {// repeat 5 times
var number = prompt("Please enter a non zero integer");
if(number==0){
document.write("Invalid Input <br>");
count++;
}
else{
document.write("The inverse is: " + 1/number + "<br>");
sum = sum + (1/parseInt(number)); //add number to the sum
}
i++; //increase i by 1
}
if (sum==0){
document.write("You did not enter valid input");}
else { document.write("The sum of the inverses is: " + sum); //display sum
}
</script></body></html>
и он использует parseInt. Если бы я хотел использовать math.round, есть ли что-то еще, что мне нужно сделать, чтобы он знал, чтобы ограничить количество десятичных знаков соответственно?
Другими словами, нужно ли отформатировать math.round определенным образом?
Ответы
Ответ 1
Две функции действительно очень разные.
parseInt()
извлекает число из строки, например
parseInt('1.5')
// => 1
Math.round()
округляет число до ближайшего целого числа:
Math.round('1.5')
// => 2
parseInt()
может получить свой номер, удалив дополнительный текст, например:
parseInt('12foo')
// => 12
Однако, Math.round не будет:
Math.round('12foo')
// => NaN
Вероятно, вы должны использовать parseFloat
и Math.round
, поскольку вы получаете вход от пользователя:
var number = parseFloat(prompt('Enter number:'));
var rounded = Math.round(number);
Ответ 2
Math.round
округляет число до ближайшего целого числа. parseInt
заверит вас, что это число
Итак, вам нужно что-то вроде этого:
number = parseInt(number);
if ( isNan(number) || number == 0 ){
document.write("Invalid Input <br>");
count++;
}
Это заверит вас, что использование помещено в число
Ответ 3
Math.round
ожидает число, parseInt
ожидает строку.
Используйте parseInt('12345', 10)
для разбора чисел на основе 10.
http://www.javascripter.net/faq/convert2.htm