Подтвердить что ты не робот

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 определенным образом?

4b9b3361

Ответ 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