JavaScript中的四舍五入

  • 时间:2019-01-19 18:37 作者:秋风_bdfd 来源:秋风_bdfd 阅读:167
  • 扫一扫,手机访问
摘要:在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种:【1】向上取整:ceil【2】向下取整:floor【3】四舍五入:round【4】固定精度:toFixed【5】固定长度:toPrecision【6】取整:parseInt、位运算1.向上取整:ceilceil 是`天花板`的意思

在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种:

【1】向上取整:ceil

【2】向下取整:floor

【3】四舍五入:round

【4】固定精度:toFixed

【5】固定长度:toPrecision

【6】取整:parseInt、位运算

1.向上取整:ceil

ceil 是`天花板`的意思,表示在一个数值之上,且距离该数最近的整数

ceil 是 Math 对象的静态方法,需要传递一个参数,其调用方法如下:

ceil

2、向下取整: floor

floor 是`地板`的意思,表示在一个数值之下,且距离该数最近的整数。floor 是 Math 对象的静态方法,需要传递一个参数,其调用方法如下:

floor

3、四舍五入: round

round 的作用是对一个浮点数进行四舍五入,并保留整数位。round 也是 Math 对象的静态方法,也需要传递一个参数,其调用方法如下:

round

这里还是要推荐下小编的web前台学习群:867726593,不论你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份最新的web前台资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

4、固定精度: toFixed

toFixed 和上面三个方法不同,它是 Number 原型上实现的一个方法,其作用是对一个浮点数进行四舍五入并保留固定小数位。 toFixed 需要传递一个参数,其调用方式如下:

toFixed

5、固定长度: toPrecision

toPrecison 也是 Number 原型上实现的一个解决浮点数的方法,和 toFixed 不同的是,它是对一个浮点数进行四舍五入并保留固定长度的有效数字,包括整数部分

toPrecision

6、取整: parseInt

parseInt?是 全局对象 window上的一个方法,其作用是对一个可转换的数值取整,分为以下两种情况:

1. 将字符串数值转化为 Number 整数,对字符串的每一个字符进行转化,直到遇到不可转化的字符(包括小数点)中止。

2. 对浮点类型数值取整,忽略小数部分,不做四舍五入解决

parseInt

7、取整: 位运算

【1】| 0 : 和 0 进行 按位或者 操作,原值不变

【2】~~ : 两次 按位非 操作得到的也是原值

【3】>> 0 : 右移 0 位

【4】<< 0 : 左移 0 位

【5】>>> 0: 无符号右移 0 位

这些位运算符在实现取整操作时,会体现出少量共同的特征:

对于 Number 类型来说,直接应用位操作, 和 parseInt 得到的结果几乎一样;

对于其余类型,内部会先通过 Number() 将其转换为一个数值,而后再应用位操作。

对特殊 NaN 和 Infinity 值应用位操作时,这两个值都会被当成 0 来解决 。

对于 Number 类型,直接应用位运算。

Number类型位运算

对于其余类型,先使用?Number()?转换为数值类型,再进行位运算。

其余类型位运算

位运算作用于最基本的层次上,即按内存中表示数值的位来操作数值。

位运算能取整的起因是:

ECMAScript 中的数值以64位双精度浮点数存储,但位运算只能作用于整数,因而要先将

64 位的浮点数转换成 32 位的整数,而后再进行位运算,最后再将计算结果转换成64位浮点数存储。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】Discuz发布帖子时默认显示第一个主题分类的修改方法(2019-12-09 00:13)
【系统环境|软件环境】Android | App内存优化 之 内存泄漏 要点概述 以及 处理实战(2019-12-04 14:27)
【系统环境|软件环境】MySQL InnoDB 事务(2019-12-04 14:26)
【系统环境|软件环境】vue-router(单页面应用控制中心)常见用法(2019-12-04 14:26)
【系统环境|软件环境】Linux中的Kill命令(2019-12-04 14:26)
【系统环境|软件环境】Linux 入门时必学60个文件解决命令(2019-12-04 14:26)
【系统环境|软件环境】更新版ThreeJS 3D粒子波浪动画(2019-12-04 14:26)
【系统环境|软件环境】前台开发WebStorm常用快捷键,火速收藏!(2019-12-04 14:25)
【系统环境|软件环境】微博H5登录和发微博组件(2019-12-04 14:25)
【系统环境|软件环境】5分钟谈前台面试,小伙伴都惊呆了(2019-12-04 14:23)
手机二维码手机访问领取大礼包
返回顶部