javascript - 在 JavaScript 中四舍五入到最接近的小数点后的百分之一

标签 javascript math decimal

我在 JavaScript 中使用变量来表示数字来做简单的数学运算。 这是我的代码示例:

var ones = 0;
var fives = 0;
function results (){
    _fives = (fives * 5);
    var res = (_fives + ones);
    document.innerHTML = res;
}

这不是完整代码,但基本上我让用户输入从 1 美分硬币到 100 美元钞票的纸币和硬币数量。该代码将账单金额乘以账单的值(value)。这没问题,工作正常...... 出于某种原因,我的某些结果显示小数点,例如 1.899999999997,我不确定这是怎么发生的。

有没有办法改变它,让它四舍五入到最接近的小数点后的百分之一?

例如,它不会显示 1.89999999997,而只会显示 1.90 实际上这不是什么大问题。这是我个人的事情,我可以自己将其四舍五入,但是学习如何执行此操作以供将来引用会很好。

最佳答案

更新:MDN 实际上有一个 great example of decimal rounding that avoids floating point inaccuracies .他们的方法可以根据 OP 修改为始终向上舍入。


原始(有些不正确)答案

//to round to n decimal places
function round(num, places) {
    var multiplier = Math.pow(10, places);
    return Math.round(num * multiplier) / multiplier;
}

编辑:我没有完整阅读问题。由于我们在谈论货币,因此我们可能希望将其四舍五入:

//to round up to two decimal places
function money_round(num) {
    return Math.ceil(num * 100) / 100;
}

关于javascript - 在 JavaScript 中四舍五入到最接近的小数点后的百分之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968615/

相关文章:

java - 计算数组中值的总和

c# - 从 C# 到 SQL Server 的精度损失

Python 到 JSON 序列化在十进制上失败

javascript - Req.body 为空,表示

javascript - C3 js ondragend 事件

javascript - 拖放下拉列表,并相应地在javascript中更新数据。

algorithm - 应用对数在树中导航

javascript - 如何四舍五入到最接近的整数

javascript - 如何将 React 组件添加到现有的 Django 项目

javascript - Intl.NumberFormat.prototype.format() 中的默认舍入策略