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