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)
上一篇 2022年4月9日 上午7:20
下一篇 2022年4月9日 上午7:20


相关推荐

  • 火山图详解

    火山图详解火山图详解介绍火山图是散点图的一种 它将统计测试中的统计显著性量度 如 pvalue 和变化幅度相结合 从而能够帮助快速直观地识别那些变化幅度较大且具有统计学意义的数据点 基因等 火山图可以方便直观地展示两个样本间基因差异表达的分布情况 通常横坐标用 log2 foldchange 表示 差异越大的基因分布在两端 纵坐标用 log10 pvalue 表示 T 检验显著性 P 值的负对数 通常差异倍数越大的基因 T 检验越显著 所以左上角和右上角的数据点往往更具有生物学研究意义 这类图像往往呈现类似火山爆发的样子

    2026年3月26日
    3
  • 草单的_单字草书写法

    草单的_单字草书写法http://blog.sina.com.cn/s/blog_4d6c45250100x0t1.html

    2022年10月19日
    6
  • ExaGrid获得+73的净推荐值

    ExaGrid获得+73的净推荐值根据NPS标准,此分数值被归为“优秀”马萨诸塞州韦斯特伯鲁–(美国商业资讯)–备份用超融合二级存储器领先供应商ExaGrid®今日宣布,在近日开展的净推荐值(NPS)调查中,该公司的NPS为+73。NPS客户忠诚度指标用于测评现有客户向同行推荐供应商产品或服务的可能性。得到的NPS分数可能低至-100或高达+100。ExaGrid的大多数竞争对手的NPS介于+10和+20之间,而Exa…

    2022年6月6日
    33
  • Cursor使用MCP

    Cursor使用MCP

    2026年3月16日
    2
  • GoogLeNet v1结构「建议收藏」

    GoogLeNet v1结构「建议收藏」GooLeNetInception块GooLeNetGooLeNet是google2014年推出的深度神经网络模型,原论文名称为:Goingdeeperwithconvolutions,在沐神的书上也被叫做含并⾏连结的⽹络(主要由于Inception块中的结构)。该模型在2014年ILSVRC2014比赛中竞赛中夺得冠军,14年之后也在不断发展,这里就介绍一下初始的版本。Inception块GooLeNet思想有点类似于VGG,先构建块,网络主要通过块的堆叠实现,不过这里的块与VGG块不同,称

    2022年8月14日
    12
  • java quartz_job.xml_java 使用quartz 定时xml 配置 与注解 以及注意事项

    java quartz_job.xml_java 使用quartz 定时xml 配置 与注解 以及注意事项xml配置实现:1.选择所需要的jar4.2.2.RELEASEorg.springframeworkspring-oxm${spring.version}org.springframeworkspring-jdbc${spring.version}org.springframeworkspring-webmvc${spring.version}org….

    2022年7月13日
    17

发表回复

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

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