Как объединить два числа в JavaScript?



Я бы хотел что-то вроде 5 + 6 вернуться "56" вместо 11.

294   12  

12 ответов:

использовать "" + 5 + 6 чтобы заставить его строк. Это работает и с числовыми переменными:

var a = 5;
var b = 6;
console.log("" + a + b);
var value = "" + 5 + 6;
alert(value);

просто использовать:

5 + "" + 6

простой ответ:

5 + '' + 6;
var output = 5 + '' + 6;

использовать

var value = "" + 5 + 6;

чтобы заставить его строк.

вы также можете использовать toString функция для преобразования его в строку и конкатенации.

var a = 5;
var b = 6;
var value = a.toString() + b.toString();

теперь вы можете использовать ES6 шаблон литералы.

const value = ``;

или, если у вас есть переменные:

const value = `${someInt}${someOtherInt}`;

лично я нахожу новый синтаксис гораздо более ясным, хотя и немного более подробным.

Я знаю, что это старый пост и был дан ответ много раз. Мне тоже было интересно, есть ли у JavaScript функция, которая это сделает. Я занимался математическим программированием и должен был объединить два числа.

так что если мне нужно объединить два числа 17 и 29. Конечно, я могу превратить их в строки и объединить их, а затем превратить новую строку обратно в число. Это, кажется, работает довольно хорошо, и я могу продолжить свой код, но давайте посмотрим здесь и попробуем выяснить что на самом деле здесь происходит.

так что, надеюсь, теперь картина должна быть очевидна для вас. Мы можем разработайте математическую формулу, чтобы сделать этот расчет для нас, а не просто использовать строки. Чтобы объединить любые два числа, a и b, нам нужно взять произведение a и 10 в степень длины b, а затем добавить b.

Итак, как мы получаем длину числа b? Ну, мы могли бы превратить b в строку и получить ее свойство length.

    a * Math.pow(10, new String(b).length) + b;

но должен быть лучший способ сделать это без строк, верно? Да там есть.

enter image description here

для любых двух чисел, a и b, с любым основанием B. Мы будем умножать a на основание B в степени длины b (используя логарифмическую базу b, затем настилая ее, чтобы получить ближайшее целое число, а затем добавляя к нему 1) , а затем добавляя b.

Итак, теперь наш код выглядит так:

    a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;

но подождите, что если бы я хотел сделать это в базе 2 или базе 8? Как я могу это сделать? Мы не можем использовать нашу формулу, которую мы только что создали с любым другим базы, но база 10. Объект JavaScript Math уже имеет встроенные функции для базы 10 и 2 (просто математика.log), но как мы получаем функции журнала для любой другой базы? Мы разделим отчет в журнале из базы. Math.log(b) / Math.log(base).

Итак, теперь у нас есть наш полностью функционирующий математический код для объединения двух чисел:

    function concatenate(a, b, base) {
        return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
    }
    var a = 17, var b = 29;
    var concatenatedNumber = concatenate(a, b, 10);
    // concatenatedNumber = 1729

если бы вы знали, что будете делать только математику base 10, вы можете добавить проверку для base is undefined, а затем установить base = 10:

    function concatenate(a, b, base) {
        if(typeof base == 'undefined') {
            base = 10;
        }
        return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
    }

    var a = 17, b = 29;
    var newNumber = concatenate(a, b); // notice I did not use the base argument
    // newNumber = 1729

To чтобы мне было проще, я использовал прототип, чтобы добавить функцию к объекту Number:

    Number.prototype.concatenate = function(b, base) {
        if(typeof base == 'undefined') {
                base = 10;
        }
        return this * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
    };
    var a = 17;
    var newNumber = a.concatenate(29);
    // newNumber = 1729

другая возможность может быть такой:

var concat = String(5) + String(6);

Это самый простой способ сделать это

var value=5+""+6;
enter code here
var a = 9821099923;
var b = 91;
alert ("" + b + a); 
// after concating , result is 919821099923 but its is now converted 
into string  

console.log(Number.isInteger("" + b + a))  // false

 you have to do something like below:- 

var c= parseInt("" + b + a)
console.log(c); // 919821099923
console.log(Number.isInteger(c)) // true

Comments

    Ничего не найдено.