[英]Adding Strings With Float Numbers Javascript
我正在尝试解决一个问题,以便能够添加包含浮点数的字符串。 例如“110.75”+“9”=“119.75”。
我有下面的代码,我已经与它搏斗了大约一个小时,如果有人能指出我可能错在哪里的正确方向,我将不胜感激。 我只为自己编写的每个测试用例返回一个空字符串 ""。
var addStrings = function(num1, num2) {
const zero = 0;
let s1 = num1.split(".");
let s2 = num2.split(".");
result = "";
let sd1 = s1.length > 1 ? s1[1] : zero;
let sd2 = s2.length > 1 ? s2[1] : zero;
while(sd1.length !== sd2.length) {
if(sd1.length < sd2.length) {
sd1 += zero
} else {
sd2 += zero;
}
}
let carry = addStringHelper(sd1, sd2, result, 0);
result.concat(".");
addStringHelper(s1[0], s2[0], result, carry);
return result.split("").reverse().join("");
};
function addStringHelper(str1, str2, result, carry) {
let i = str1.length - 1;
let j = str2.length - 1;
while(i >= 0 || j >= 0) {
let sum = carry
if(j >= 0) {
sum += str1.charAt(j--) - '0';
}
if(i >= 0 ) {
sum += str2.charAt(i--) - '0';
}
carry = sum / 10;
result.concat(sum % 10);
}
return carry
}
将字符串转换为Number
,添加它们,然后将它们转换回String
。
const addStrings = (num1, num2) => String(Number(num1) + Number(num2)) console.log(addStrings("110.67", "9"))
另外,尝试以某种方式处理浮点舍入。 您可以尝试使用toFixed
(这会将结果固定到小数点后两位) 。
const addStrings = (num1, num2) => String((Number(num1) + Number(num2)).toFixed(2)) console.log(addStrings("0.2", "0.1"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.