如何在没有数学库的情况下截断JavaScript中的小数?

Dav*_*eto 2 javascript angularjs

我需要数字只有2位小数(如钱),我使用这个:

Number(parseFloat(Math.trunc(amount_to_truncate * 100) / 100));
Run Code Online (Sandbox Code Playgroud)

但我不能再支持数学库了.

如果没有数学库并且舍入小数,我怎样才能实现这一目标?

Tol*_*rak 6

你可以使用toFixed

Number(amount_to_truncate.toFixed(2))
Run Code Online (Sandbox Code Playgroud)

如果您确定输入总是低于或等于21474836.47((2^31 - 1) / 100)(32位),那么:

如果你需要字符串(以确保结果将有2位小数)

((amount_to_truncate * 100|0)/100).toFixed(2)
Run Code Online (Sandbox Code Playgroud)

除此以外

((amount_to_truncate * 100|0)/100)
Run Code Online (Sandbox Code Playgroud)

另外:见Nina Schols的回答

console.log((((15.555 * 100)|0)/100)) // will not round: 15.55
console.log((((15 * 100)|0)/100).toFixed(2)) // will not round: 15.55
Run Code Online (Sandbox Code Playgroud)