这是一个非常基本的SIP
计算器,最多不应超过5行。但是,可变金额一直被视为string
。我必须继续使用parseFloat()
并声明三个附加变量来存储最终值,然后再将其返回以使代码工作。有什么解决方法吗?
function sipCalculator(amount, r, n) {
r = r / 12;
amount = parseFloat(amount);
var temp = 0;
for (var i = 0; i < n; i++) {
temp += amount;
temp += (temp * (r / 100));
}
var x = amount * n;
var y = parseFloat(temp.toFixed(2));
var z = parseFloat((y - x).toFixed(2));
return [x, y, z];
};
答案 0 :(得分:1)
对.toFixed(2)
的调用将数字转换为字符串。如果您想让它们成为数字,同时将它们限制为两位小数,则parseFloat(num.toFixed(2))
is the recommended approach(您已经在做)。
以下是Number.prototype.toFixed
上MDN的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
如果您只是不喜欢parseFloat
的冗长性,请you can use +
instead将字符串转换为数字。 当然这不是最好的主意,因为不是每个人都知道它的作用。
var x = 1.44444;
console.log(+x.toFixed(2));