js四舍五入

2023-11-16

1.Math.round方法

Math.round() 方法可把一个数字舍入为最接近的整数。例如:Math.round(x),则是将x取其最接近的整数。

简单例子:

var num=Math.round(568.58)

console.log(num);

// 输出结果是:569

说明:Math.round方法使用的是四舍五入中的方法,符合数学中取舍的规则。结果只能是整数,对于小数的处理没有那么便捷,但是可以根据不同的要求,进行自定义的处理。

2. tofixed方法

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(2)

例子:

var number =6.446242342;

var num = number.toFixed(2);

console.log(num);输出结果是:6.44

// 期望输出结果是:6.45

说明:tofixed方法四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶法

解决办法

1。

roundFixed(num, fixed) {//修改js四舍五入
    var pos = num.toString().indexOf('.'),
    decimal_places = num.toString().length - pos - 1,
    _int = num * Math.pow(10, decimal_places),
    divisor_1 = Math.pow(10, decimal_places - fixed),
    divisor_2 = Math.pow(10, fixed);
    return Math.round(_int / divisor_1) / divisor_2;
}

2.

Number.prototype.toFixed = function (d) {
  var s = this + "";
  if (!d) d = 0;
  if (s.indexOf(".") == -1) s += ".";
  s += new Array(d + 1).join("0");
  if (new RegExp("^(-|+)?(d+(.d{0," + (d + 1) + "})?)d*$").test(s)) {
    var s = "0" + RegExp.$2,
      pm = RegExp.$1,
      a = RegExp.$3.length,
      b = true;
    if (a == d + 2) {
      a = s.match(/\d/g);
      if (parseInt(a[a.length - 1]) > 4) {
        for (var i = a.length - 2; i >= 0; i--) {
          a[i] = parseInt(a[i]) + 1;
          if (a[i] == 10) {
            a[i] = 0;
            b = i != 1;
          } else break;
        }
      }
      s = a.join("").replace(new RegExp("(d+)(d{" + d + "})d$"), "$1.$2");
    }
    if (b) s = s.substr(1);
    return (pm + s).replace(/.$/, "");
  }
  return this + "";
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js四舍五入 的相关文章

  • 为任何更新查询增加 Mongoose 文档版本的简单方法?

    我想开始利用 Mongooses 文档版本控制 v key 我在实际增加版本值时遇到了问题 然后我发现您必须添加this increment 执行查询时 有没有办法自动递增 目前 我只是将其添加到pre用于更新类型查询的中间件 module
  • 从 HTML 字符串中解析和选择

    使用 ajax 调用 我返回了页面的partialView HTML 但在显示它之前 我希望从主 div 中提取信息 如果我创建一个浮动窗口 该数据只是大小信息 Code div class window details more data
  • 如何恢复文本框数据

    我有一个小小的要求 我们已经恢复了之前清除的文本框数据 下面是我的 HTML 代码 table tr td td tr table
  • 如何使用多个 select2 框过滤表格?

    我正在尝试使用 和多个 select2 框的类来过滤表格 表格 HTML table class table tbody tr class kanban event Austin td td tr tr class csm event Ch
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • Javascript 将对象推送为克隆

    我将 d3 用于交互式网络应用程序 我需要绑定的数据在交互过程中发生变化 并且由 JSON 变量中的一些选定对象组成 为此 我在 JSON 变量上使用了映射 并进行了一些查询来选择适当的对象 对象被推送到列表中 并且该列表被绑定为新数据 我
  • 以下文档我无法创建 Vue.js 3 的实例

    The code https stackblitz com edit vue ttt file src main js https stackblitz com edit vue ttt file src main js 问题 我正在尝试在
  • Angular UI 路由器嵌套视图问题

    我在理解 Angular UI Router 嵌套视图的工作原理时遇到了一些问题 我的 stateProvider 看起来像这样 stateProvider state login url login views main template
  • onClick 处理程序在每个渲染周期触发

    我有这样的默认状态 this state selectedTab tab1 then 我的渲染方法是这样的 render const selectedTab this state return li tab1 li li tab2 li d
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 如何解决“消息端口在收到响应之前已关闭”的问题。在 JavaScript 中的 window.location.reload() 之后

    我遇到了 javascript 问题 从 chrome v73 0 3683 86 开始 每当我在 window location reload 函数之后运行 javascript 代码时 它总是给我错误 Unchecked runtime
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作

随机推荐

  • mysql 触发器 sql_mysql动态SQL的运用 (trigger、function、procedure)

    mysql中 当你在trigger function中编写动态的sql时 编译时就会出现 Error 1336 Dynamic SQL is not allowed in stored function or trigger trigger
  • Linq使用方法

    Linq是一种面向对象的查询方式 它和SQL语句及其类似 sql写法 select from 表 Linq写法 from n in 数据源 select n 为什么不跟sql写法一样将select一同写在语句的开头呢 主要是当时做IDE时考
  • elasticsearch安装部署和期间遇到的问题和解决

    因为工作需要用到elasticsearch 最近在测试环境部署单机版的elasticsearch服务 可以说是相当的波折 一个问题解决一个问题又来 都要吐血了已经 还好最终都得以解决 解决后那一刻真尼玛的爽啊啊啊 问题列表 elastics
  • 将本地项目上传到gitlab

    1 安装git https git scm com downloads 2 新建工程 3 创建密钥 a 桌面右键 b cd ssh 如果提示 No such file or directory 你可以手动的创建一个 ssh文件夹即可 mkd
  • 日本“性爱机器人”上线1小时被抢空

    来源 正商参阅 局座召忠 李开复 蒋东平网络等 日本 妻子 机器人被哄抢 不要房车不要彩礼 日本研发出一款 美女机器人 将其命名为 妻子 光看她的外形 你能识别出她其实只是一个机器人吗 60分钟售出万台 第一点就是人们所关注的价格方面 在日
  • node.js 环境安装(windows)

    准备需要安装的电脑 下载node js的安装包 地址 http nodejs cn download 下载的安装包双击打开 依次按照下图指示执行 下图点击接受 后下一步 下图 根据实际情况选择安装位置 如果记不住建议选择默认位置 直接点击n
  • 使用Python+VTK获取3D体渲染模型任意角度切面(更新中)

    目录 效果图 实现目标 安装依赖 Code 其他需求 效果图 废话少说先上效果图 右边红色的plane是想要获取3D模型对应切面的平面 左边是这个切面的切片的图像 实现目标 定义一个任意角度的切面 都能把体绘制模型的这个切面的图像获取 并且
  • LADRC的离散化实现(Mark一下,重新开始)

    LADRC的离散化实现 一 感慨 上一次写博客是两年前了 现在已经过了那么久 期间经历了许多事 有好有坏 不多大多时候是丧的 到了现在 终究让我相通了一件事情 深刻理解并追求自己想要做的事情是会幸福的 通过读了许多书 在b站上看了许多视频
  • 正则匹配emoji字符

    寻找emoji的编码范围 在这个网站中可以查看所有的emoji unicode Emoji Unicode table 用js代码找出这个页面所有emoji unicode 的范围 let list document querySelect
  • PostgreSql 数据库的访问权限配置

    本文主要简单的描述以下几个 在使用PostgreSql数据库时常见的 有关访问权限以及远程连接数据库的问题 及其解决办法 以下所述问题及解决办法都在postgresql8 0及windows 2003server的范围内 1 在本地使用po
  • 漫谈拥塞控制: pacing rate

    我基于综合效能结合排队论解释过 pacing 发送的益处 为什么 pacing 但该解释仍没有揭露 pacing 的本质 pacing 的本质是出让时间槽 出让时间槽无法降低整体等待时延 但可降低甚至消除抖动 即在任意短的采样周期内保持等待
  • CTF MISC解题思路BUUCTF MISC1-8刷题

    1 签题 扫描二维码到得flag 2 金 胖 题目为gif动画 用wps打开每帧保存成图片 flag就在其中几张图片 3 二维码 下载题目解压得到一个二维码图片 扫描没发现flag 使用010editor打开图片发现文件头为89 50 4E
  • [C语言]offseto宏的认识与模拟实现

    目录 1 offseto的认识 2 offseto的模拟实现 1 offseto的认识 在结构体中 因为内存对齐的存在我们需要进行计算才能知道结构体成员的地址对于结构体首地址的偏移量为多少 今天认识的offseto就是将结构体中成员地址对于
  • Day 13 - 正则表达式习题

    利用正则表达式完成下面的操作 1 用户名匹配 要求 1 用户名只能包含数字 字母 下划线 2 不能以数字开头 3 度在 6 到 16 位范围内 re username re compile r a zA Z w 5 15 print re
  • 2-3 处理缺失数据

    2 3 处理缺失数据 与本节相关的视频课程 处理缺失数据 检查缺失数据 基础知识 def foo pass f foo print f None type f NoneType None 2 TypeError unsupported op
  • sql月度汇总_【转】SQL语句统计每天、每月、每年的数据

    原文 https www cnblogs com fooo p 3435687 html sql语句统计每天 每月 每年的数据 1 每年 select year ordertime 年 sum total 销售合计 from 订单表 gro
  • C/C++面向过程与面向对象的区别

    C 是面向对象的 object oriented programming OOP 强调对象 由对象实施动作 C是面向过程的 procedure oriented programming POP 强调执行的过程 总结起来就是 面向对象是首先抽
  • 给mp3播放器增加音乐波形显示功能

    给mp3播放器增加音乐波形显示功能 2008 04 02 16 18 18 分类 应用编程 标签 字号大中小 订阅 用过winamp的人都知道 winamp有一个音乐波形显示功能 当播放音乐的时候 有一些音乐波形跟着上下跳动 翩翩起舞 又好
  • 运动控制初始化

    1 设置控制器的名称 类型 2 加载控制器的dll 3 初始化X 输入 Y 输出 轴映射 4 设置每个轴的回零参数 5 设置每个轴的预备位 起点位 6 配置各个轴的限位信号 包括报警 复位 正负限位 原点 Ready信号 7 配置各个轴的运
  • js四舍五入

    1 Math round方法 Math round 方法可把一个数字舍入为最接近的整数 例如 Math round x 则是将x取其最接近的整数 简单例子 var num Math round 568 58 console log num