我正在尝试解决一个在 codewars 上似乎很简单的套路,但我似乎没有做对。
这方面的说明很简单
给定两个整数的字符串表示,返回这些整数之和的字符串表示。
例如:
sumStrings('1','2')//=> '3'
整数的字符串表示除了十个数字“0”到“9”之外不包含任何字符。
这是我试过的
function sumStrings(a,b) {
return ((+a) + (+b)).toString();
}
但结果解决了除两个之外的所有问题,这些是我得到的错误
sumStrings('712569312664357328695151392', '8100824045303269669937') - Expected: '712577413488402631964821329', instead got: '7.125774134884027e+26'
sumStrings('50095301248058391139327916261', '81055900096023504197206408605') - Expected: '131151201344081895336534324866', instead got: '1.3115120134408189e+29'
我似乎不明白问题出在哪里。任何帮助都会有所帮助。
最佳答案
您输入的值大于 int 类型的最大值。您可以尝试将代码更改为:
function sumStrings(a,b) {
return ((BigInt(a)) + BigInt(b)).toString();
}
这样它应该返回正确的值
关于javascript - 将字符串求和为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227662/