如何在javascript中连接两个数字?
我想要像5 + 6
东西返回"56"
而不是11
。
使用"" + 5 + 6
将其强制为string。 这也适用于数值variables:
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;
强制它的string。
您现在可以使用ES6模板文字。
const value = `${5}${6}`;
或者,如果你有变数:
const value = `${someInt}${someOtherInt}`;
就我个人而言,我发现新的语法更清晰,尽pipe稍微更冗长。
另一个可能是这样的:
var concat = String(5) + String(6);
您也可以使用toString
函数将其转换为string和连接。
var a = 5; var b = 6; var value = a.toString() + b.toString();
这是做这件事的简单方法
var value=5+""+6;
我知道这是一个老post,已经被回答了很多次。 我也想知道JavaScript是否有这样做的function。 我正在做一些math编程,需要连接两个数字。
所以,如果我需要结合两个数字17和29,我可以把它们变成string并连接起来,然后把新的string变成一个数字。 这似乎工作得很好,我可以继续我的代码,但让我们看看这里,并试图找出真正发生在这里。
我们对这两个数字做了什么,我们如何拿17和29,把它变成一千零七二十九? 那么我们可以乘以17,乘以100,然后加29,172和293怎么能得到一万七千二千二百九十三呢? 乘以172乘以1000,再加293.但是,只有2和9呢? 乘以2乘10再加9得到29。
所以希望现在一个模式应该是明显的你。 我们可以devise一个math公式来为我们做这个计算,而不仅仅是使用string。 要连接任意两个数字a和b,我们需要把a和10的乘积的长度乘以b的长度,然后加上b。
那么我们如何得到数字b的长度呢? 那么,我们可以把b变成一个string,并获得它的长度属性。
a * Math.pow(10, new String(b).length) + b;
但是,如果没有string,还有更好的方法吗? 就在这里。
对于任何两个数字,a和b,以及任何基数B.我们将乘以一个基数B到长度为b的幂(使用b的对数基数,然后铺设它以得到最接近的整数,然后加1)然后添加b。
所以现在我们的代码如下所示:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
但是,等等,如果我想在基地2或基地8这样做呢? 我怎样才能做到这一点? 我们不能使用我们刚刚创build的公式,而是使用基数为10的任何其他基数。JavaScript Math对象已经具有基本10和2(仅Math.log)的内置函数,但是如何获取任何日志函数其他基地? 我们把b的日志除以基本的日志。 Math.log(b) / Math.log(base).
所以,现在我们有了完整的基于math的代码来连接两个数字:
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
如果你知道你只是要做10math的基础,你可以添加一个检查基地是未定义的,然后设置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
为了让我更容易,我使用原型将函数添加到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
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