如何简化此代码以获得数字的正确小数位?

时间:2018-09-18 00:10:10

标签: javascript

下面是代码:

let moneyToReturn = 0.5
let note = 0.01
let sum = 0

while(moneyToReturn-note>=0){ 

    moneyToReturn = ((moneyToReturn*10 - note*10)/10).toFixed(2)
    sum = ((sum*10 + note*10)/10).toFixed(2)

//  moneyToReturn -= note
//  sum += note

    console.log(sum)
}

要确保我没有在每次计算中都用疯狂的小数位记录我的 sum ,我需要编写这段代码。

((x * 10 + y * 10)/10).toFixed(2)

这样做的更好/更短的方法是什么?

1 个答案:

答案 0 :(得分:0)

也许您可以使用parseFloat来避免那样的算术运算?

while(moneyToReturn-note>=0){ 

    moneyToReturn = parseFloat((moneyToReturn - note).toFixed(2))
    sum = parseFloat((sum + note).toFixed(2))

//  moneyToReturn -= note
//  sum += note

    console.log(sum)
}

您应该发现上面的parseFloat的使用在功能上等同于((x * 10 + y * 10)/10).toFixed(2),如以下代码示例所示:

var x = 0.1
var y = 0.3

console.log('Current method', ((x * 10 + y * 10)/10).toFixed(2) )
console.log('Concise method', (parseFloat(x + y).toFixed(2)) )