繁体   English   中英

添加带有浮点数的字符串 Javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM