#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);