簡體   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