преобразование строки в целое число в jquery

#javascript #jquery

#javascript #jquery ( jquery )

Вопрос:

Я пытаюсь преобразовать строку в целое число с помощью функции, приведенной ниже, но она возвращает сообщение TypeError: pos.replace не является функцией

 var pos=1.904;
pos = pos.replace(".", "");
pos = Number(pos);
 

Комментарии:

1. что бы сделала замена точки пустой строкой внутри числа? Это не веревочка…

2. @ShaunakD предполагая, что вы имеете в виду parseInt , что это превращает строку в число. У него уже есть номер.

3. Я думал, что OP просто хочет преобразовать float в integer.

4. @ShaunakD в этом случае я бы посоветовал Math.round(pos)

5. Да, в данном случае это так.

Ответ №1:

Это сообщение об ошибке появляется из — за того, что вы вызываете .replace() собственный string метод поверх a number . Используется .toString() для преобразования числа в строку, а затем для вызова .replace() метода поверх этого.

Попробуй,

 var pos=1.904;
pos = pos.toString().replace(".", "");
pos = Number(pos);
 

ДЕМОНСТРАЦИЯ

Ответ №2:

Ваше объявление не является строкой, поэтому оно вызывает ошибку. Поместите значение в кавычки.

 var pos="1.904";
 

Комментарии:

1. Я думаю, мы можем предположить, что число изначально исходит из числа, а не из жестко заданного значения. В противном случае он мог бы также написать 1904 для начала 🙂

2. если это так, ему нужно использовать toString() как @Rajaprabhu, у меня также есть подобное определение, но, увидев его ответ, я удалил его.

Ответ №3:

var pos=1.904; это не строка.
вот почему .replace с ним не работает.

использование

 var pos="1.904";
pos = pos.replace(".", "");
pos = Number(pos);
 

Ответ №4:

Попробуй это

Добавление пустой строки для преобразования числа в строку .тогда вы должны использовать replace method

 var pos=1.904 "";
pos = pos.replace(".", "");
alert( pos);
 

ИЛИ попробуйте другое решение, все будет округлено, если у вас есть 3 цифры, которые вам нужно умножить на 1000 или сделать так. это немного отличается от других

 var pos=10090.4 "";//199,1.904, 1.02,1.0000058,1555.02,16888.1582 what ever 
var len=pos.split(".");
if(len[1]){
   pos=pos* Math.pow(10,len[1].length);
}

alert(pos);
 

ДЕМОНСТРАЦИЯ