У меня есть две строки, которые содержат только цифры:
var num1 = '20',
num2 = '30.5';
Я бы ожидал, что смогу добавить их вместе, но вместо этого они объединяются:
num1 + num2; // = '2030.5'
Как я могу заставить эти строки рассматриваться как числа?
javascript
Андрей
источник
источник
MDN документы для parseInt
MDN документы для parseFloat
В parseInt radix задается как десять, так что мы находимся в базе 10. В нестрогом javascript число с префиксом
0
рассматривается как восьмеричное. Это, очевидно, вызовет проблемы!Также смотрите ответ ChaosPandion для полезного ярлыка с использованием унарного оператора . Я настроил скрипку, чтобы показать различное поведение.
http://jsfiddle.net/EtX6G/
источник
+num1 + +num2
короче, возможно, более элегантно. В основном унарный+
оператор преобразуется вNumber
Я бы порекомендовал использовать унарный оператор плюс для принудительной обработки конечной строки как числа внутри скобок, чтобы сделать код более читабельным, как показано ниже:
Итак, в вашем случае это:
источник
источник
преобразовать строки в
floats
сparseFloat(string)
илиintegers
сparseInt(string)
источник
parseInt(string, 10)
см. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Если вам нужно добавить две строки вместе, которые являются очень большими числами, вам нужно оценить сложение в каждой позиции строки:
источник
Вы можете использовать это, чтобы добавить номера:
источник
пытаться
или, в зависимости от ваших потребностей:
http://www.javascripter.net/faq/convert2.htm
Возможно, вы захотите купить книгу Дугласа Крокфорда « Javascript: The Good Parts ». Javascript имеет довольно значительную коллекцию ошибок! Эта книга имеет большое значение для их разъяснения. Смотрите также
и превосходное эссе г-на Крокфорда, Javascript: самый неправильно понятый в мире язык программирования .
источник
Я всегда просто вычитал ноль.
Конечно, метод унарного оператора на один символ меньше, но не все знают, что такое унарный оператор или как в Google узнать, когда они не знают, как он называется.
источник
Если вы хотите выполнить операцию с числами в виде строк (как в случае, когда числа больше 64 бит), вы можете использовать библиотеку больших целых чисел .
источник
Здесь у вас есть два варианта сделать это:
,
Теперь я собираюсь показать вам здесь с помощью примеров (Найти сумму двух чисел).
Используя унарный оператор плюс
Используя подход парсинга
источник
источник
Вы можете использовать
parseInt
для разбора строки на число. Чтобы быть в безопасности, всегда передавайте10
второй аргумент для разбора в базе 10.источник
Убедитесь, что вы округлили свой окончательный ответ до 16 знаков после запятой для чисел с плавающей запятой, поскольку скрипт Java содержит ошибки.
Например 5 - 7,6 = -2,5999999999999996
источник
@ cr05s19xx предложили по дублирующему вопросу:
JavaScript немного забавен, когда дело доходит до чисел и сложений.
Давать следующее
«20» - «30» = 10; // возвращает 10 как число '20' + '30' = '2030'; // Возвращает их в виде строки. Значения, возвращаемые из document.getElementById, являются строками, поэтому лучше проанализировать их все (даже те, которые работают) для нумерации, прежде чем продолжить сложение или вычитание. Ваш код может быть:
источник
Используйте
parseFloat
метод для разбора строк на числа с плавающей точкой:источник
Я использую это в своем проекте. Я использую знак +, чтобы рассматривать строку как число (в переменной with_interesst)
Надеюсь, поможет
источник
Работает в моем случае, если вы столкнулись с той же проблемой, что и я, и не можете найти решение для этого случая и найти этот вопрос SO.
Извините за немного не по теме, но, как только я узнал, что это работает, я подумал, что стоит поделиться.
Не знаю, если это грязный обходной путь, или на самом деле законно.
источник
Вы можете использовать так:
Когда применяется * 1 в num1, преобразуйте строку в число.
если num1 содержит букву или запятую, возвращает NaN, умноженное на 1
если num1 равен нулю, num1 возвращает 0
с уважением!!!
источник
Попробуйте это, если вы ищете простой код Javascript и хотите использовать два поля ввода и добавить числа из двух значений. Вот код
Для получения более подробной информации, пожалуйста, посетите http://inforrativejavascript.blogspot.nl/2012/12/javascript-basics.html
источник