Spe*_*ter 11 javascript math decimal
我在JavaScript中使用变量表示数字进行简单的数学运算.这是我的代码示例:
var ones = 0;
var fives = 0;
function results (){
_fives = (fives * 5);
var res = (_fives + ones);
document.innerHTML = res;
}
Run Code Online (Sandbox Code Playgroud)
这不是完整的代码,但基本上我让用户输入1美分硬币到100美元钞票的账单和硬币数量.该代码将账单金额乘以账单金额.这是没有问题的工作就好......由于某些原因我的一些结果显示小数像1.899999999997不知道这是怎么回事.
有没有办法改变它,所以它舍入到最接近的十进制小数?
例如,它不是显示1.89999999997,而是实际显示1.90,这不是一个大问题.这是个人的事情,我可以自己解决这个问题,但是如果能够学习如何做以备将来参考,这将是一件好事.
Rod*_*ine 18
更新:MDN实际上有一个很好的十进制舍入示例,可以避免浮点不准确.根据OP,可以将它们的方法修改为始终向上舍入.
//to round to n decimal places
function round(num, places) {
var multiplier = Math.pow(10, places);
return Math.round(num * multiplier) / multiplier;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我没有完全阅读这个问题.既然我们正在谈论货币,我们可能想要将其整合:
//to round up to two decimal places
function money_round(num) {
return Math.ceil(num * 100) / 100;
}
Run Code Online (Sandbox Code Playgroud)
这是我个人决定在我正在开发的应用程序之一中使用的!
const roundToHundredth = (value) => {
return Number(value.toFixed(2));
};
console.log(roundToHundredth(1.98723232))
console.log(roundToHundredth(3.14159265359))
console.log(roundToHundredth(2.67528))Run Code Online (Sandbox Code Playgroud)