迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中将数字四舍五入到小数点后两位

作者:迹忆客 最近更新:2023/05/09 浏览次数:

本教程介绍了如何在 JavaScript 中将数字四舍五入到小数点后两位。

我们对数字应用 .toFixed() 方法,并将小数点后的位数作为参数。

var numb = 12312214.124124124;
numb = numb.toFixed(2);

在某些情况下,此方法无法获得准确的结果,并且有比该方法更好的方法。如果数字四舍五入为 1.2,则它将显示为 1.20。如果给出的数字是 2.005,它将返回 2.000,而不是 2.01

我们将数字加上一个非常小的数字 Number.EPSILON,以确保数字的精确舍入。然后,我们在舍入前将数字乘以 100,以仅提取小数点后两位。最后,我们将数字除以 100,以获得最多 2 个小数位。

var numb= 212421434.533423131231;
var rounded = Math.round((numb + Number.EPSILON) * 100) / 100;
console.log(rounded);

输出:

212421434.53

尽管此方法比 .toFixed() 有所改进,但它仍然不是最佳解决方案,也无法正确舍入 1.005

在此方法中,我们使用 .toPrecision() 方法来消除在单次舍入中的中间计算过程中引入的浮点舍入误差。

function round(num) {
    var m = Number((Math.abs(num) * 100).toPrecision(15));
    return Math.round(m) / 100 * Math.sign(num);
}

console.log(round(1.005));

输出:

1.01
function roundToTwo(num) {
    return +(Math.round(num + "e+2")  + "e-2");
}
console.log(roundToTwo(2.005));

这个自定义函数可以处理所有的极端情况,该函数可以很好地处理小数点后的小数(如 1.005)。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Angular 中上传文件

发布时间:2023/04/14 浏览次数:71 分类:Angular

本教程演示了如何在 Angular 中上传任何文件。我们还将介绍如何在文件上传时显示进度条,并在上传完成时显示文件上传完成消息。

Angular 2 中的复选框双向数据绑定

发布时间:2023/04/14 浏览次数:139 分类:Angular

本教程演示了如何一键标记两个复选框。这篇有 Angular 的文章将着眼于执行复选框双向数据绑定的不同方法。

在 AngularJs 中加载 spinner

发布时间:2023/04/14 浏览次数:107 分类:Angular

我们将介绍如何在请求加载时添加加载 spinner,并在 AngularJs 中加载数据时停止加载器。

在 Angular 中显示和隐藏

发布时间:2023/04/14 浏览次数:78 分类:Angular

本教程演示了 Angular 中的显示和隐藏。在开发商业应用程序时,我们需要根据用户角色或条件隐藏一些数据。我们必须根据该应用程序中的条件显示相同的数据。

在 Angular 中下载文件

发布时间:2023/04/14 浏览次数:104 分类:Angular

本教程演示了如何在 angular 中下载文件。我们将介绍如何通过单击按钮在 Angular 中下载文件并显示一个示例。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便