JavaScript数学运算(取整,取余和取模)

来源|https://www.fly63.com这篇文章主要介绍js取整、取余和取模的实现方法和它们之间的区别,以及Math对象的常用方法函数介绍,有需要的朋友可以参考下。取整在项目开…

大家好,又见面了,我是你们的朋友全栈君。

fe1d37c3c9fbf918c5e0c695271c3a42.png

来源 | https://www.fly63.com

这篇文章主要介绍js取整、取余和取模的实现方法和它们之间的区别,以及Math对象的常用方法函数介绍,有需要的朋友可以参考下。

取整

在项目开发过程中,有时要对小数取整操作,JavaScript也提供了4种方法,分别为round()、ceil()、floor()和parseInt()取整。

其中round()是四舍五入取整,ceil() 是向上取整,floor() 是向下取整,parseInt() 只取整数部分。

1、保留整数部分 

Math.parseInt() 方法就是仅取整数部分,也就是不管小数点后的数是否大于5,一律舍弃:


//保留整数部分
parseInt(3/2)  // 1

2、向上取整

Math.ceil() 方法就是向上取整,求最小的整数但不小于本身,例如:


// 向上取整,有小数就整数部分加1
Math.ceil(3/2)  // 2

3、向下取整

Math.floor() 方法就是向下取整,求最大的整数但不大于本身,例如:


// 向下取整,丢弃小数部分
Math.floor(3/2)  // 1

4、四舍五入

如果要求对小数进行四舍五入,请使用 Math.round() 方法,例如:


// 四舍五入
Math.round(3/2)  // 2

除此之外还可以使用toFixed方法来实现,比如:


(3/2).toFixed() //2

toFixed(num)返回值为string,把 Number 四舍五入为指定小数位数的数字,num为指定的小数位数。

取余和取模

区别

取余是数学中的概念,取模是计算机中的概念,两者都是求两数相除的余数

1.当两数符号相同时,结果相同,比如:7%4 与 7 Mod 4 结果都是3

2.当两数符号不同时,结果不同,比如


(-7)%4=-3
(-7)Mod4=1

取余运算,求商采用fix 函数 ,向0方向舍入,取 -1。因此 (-7) % 4 商 -1 余数为 -3

取模运算,求商采用 floor 函数,向无穷小方向舍入,取 -2。因此 (-7) Mod 4 商 -2 余数为 1

取余

取余运算符 (%):一个表达式的值除以另一个表达式的值,返回余数。公式:result = numberA % numberB返回值:result,任何变量。


7%4  //3
-7%3 //-1

取模

取模运算可采用如下公式:


Number.prototype.mod = function(n) {
  return ((this % n) + n) % n;
}
// 或 
function mod(n, m) {
  return ((n % m) + m) % m;
}

使用:


mod(-7, 3) //2
(-7).mod(3) //2


(7).mod(3) //1

Math 对象的方法介绍

  • abs(x) 返回数的绝对值 1 2 3

  • acos(x) 返回数的反余弦值 1 2 3

  • asin(x) 返回数的反正弦值 1 2 3

  • atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值 1 2 3

  • atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间) 1 2 3

  • ceil(x) 对一个数进行上舍入。1 2 3

  • cos(x) 返回数的余弦 1 2 3

  • exp(x) 返回 e 的指数。1 2 3

  • floor(x) 对一个数进行下舍入。1 2 3

  • log(x) 返回数的自然对数(底为e) 1 2 3

  • max(x,y) 返回 x 和 y 中的最高值 1 2 3

  • min(x,y) 返回 x 和 y 中的最低值 1 2 3

  • pow(x,y) 返回 x 的 y 次幂 1 2 3

  • random() 返回 0 ~ 1 之间的随机数 1 2 3

  • round(x) 把一个数四舍五入为最接近的整数 1 2 3

  • sin(x) 返回数的正弦 1 2 3

  • sqrt(x) 返回数的平方根 1 2 3

  • tan(x) 返回一个角的正切 1 2 3

  • toSource() 代表对象的源代码 1 4 –

  • valueOf() 返回一个 Math 对象的原始值

学习更多技能

请点击下方公众号

49129ee4401f11859de0e3f664203799.gif

8e19153a52deb649219d6fe8dd6e27e6.png

374eb61e71cec98fd3ab9d3a2f4c3eee.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127121.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于docker中执行docker命令的实践

    关于docker中执行docker命令的实践最近在制作给kubernetesjenkinsplugin调用的jenkinsslave(默认情况下,kubernetesjenkins插件使用的是jenkinsci/jnlp-slave)容器镜像,以供自动创建的pod使用。对这个镜像的需求是:希望在pod运行的容器内,执行docker命令,完成dockerbuild,push等一些操作,即dockerindocker。首先,需要在

    2022年5月13日
    43
  • 非常详细的sklearn介绍

    非常详细的sklearn介绍0引言Sklearn(全称Scikit-Learn)是基于Python语言的机器学习工具。它建立在NumPy,SciPy,Pandas和Matplot…

    2022年5月13日
    39
  • VS2005SP1安装加速「建议收藏」

    VS2005SP1安装加速「建议收藏」vs2005sp1出来已经有一段时间了,由于安装速度太慢,我一直都没有安装,今天遇到一个vs的bug,不得已需要安装sp1,上网找了一下,发现一个解决安装速度慢的方案。之所以速度慢是很大程度上是因为windowsinstaller的cache造成,在安装时暂时禁用掉windowsinstaller的cache可以极大的加速sp1的安装,而且可以节省1.3G的磁盘空间。将下面的代码存为b

    2022年9月1日
    2
  • python开发h5页面_大数据和python有关吗

    python开发h5页面_大数据和python有关吗文章目录前言HDF与h5简介数据组织方式HDFView下载与安装在WIN10系统安装后打开出现黑框闪退的解决方法python对h5文件的操作批量制作h5文件h5文件的提取,另存为nii文件前言一般来说,深度学习的训练数据和训练后的参数都会保存为h5格式文件,对于训练数据来说,深度学习中当训练大量数据时,如果从硬盘中加载再预处理,再传递进网络,这是一个非常耗时的过程。其中从硬盘中读取图片会花费大量时间,更可行在方法是将其存在单个文件中,如h5文件。那么h5文件对于深度学习训练具有什么优势呢?可以支持

    2025年9月12日
    6
  • 关于尺度空间的理解和认识_尺度空间理论

    关于尺度空间的理解和认识_尺度空间理论通常会听到尺度变化等这类词语,看到的也总是一堆的数学公式,有时候真的不知道这到底有啥用,有啥意义,没有弄懂这些意义,当然就更不可能的理解,不可能去掌握应用它了,现在我才理解,小波变化其实也是一种尺度变化。今天我看到一篇南航数学系写的关于尺度空间解释的文章,感觉很通俗易懂,我们不从数学上来推倒什么是尺度空间,只是从生活常识方面来解释尺度空间的意义,意义懂了,数学方面自然就好理解了。       

    2022年10月11日
    2
  • propertydescriptor类的使用_constructor类

    propertydescriptor类的使用_constructor类.NETFramework2.0其他版本提供类上的属性的抽象化。命名空间:System.ComponentModel程序集:System(在system.dll中)语法C#C++VB[ComVisibleAt

    2022年10月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号