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

更新日期: 2022-01-12阅读量: 751标签: 运算

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


取整

在项目开发过程中,有时要对小数取整操作,js也提供了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 对象的原始值


站长推荐

1.云服务推荐: 国内主流云服务商/虚拟空间,各类云产品的最新活动,优惠券领取。领取地址:阿里云腾讯云硅云

链接: https://www.fly63.com/article/detial/11024

js除了Math.floor方法,还可以通过位运算|,>>实现向下取整

我们都知道通过Math.floor()方法可实现数值的向下取整,得到小于或等于该数字的最大整数。除了Math.floor方法,还可以使用位运算|,>>来实现向下取整哦

es6 扩展运算符 三个点(...)

扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

巧用JS位运算

位运算的方法在其它语言也是一样的,不局限于JS,所以本文提到的位运算也适用于其它语言。位运算是低级的运算操作,所以速度往往也是最快的

js中使用位运算,让执行效率更高

平常的数值运算,其本质都是先转换成二进制再进行运算的,而位运算是直接进行二进制运算,所以原则上位运算的执行效率是比较高的,由于位运算的博大精深,下面通过一些在js中使用位运算的实例

js各种取整方式及方法_四舍五入、向上取整、向下取整

js实现:四舍五入、向上取整、向下取整等方法。parseInt、Math.ceil、Math.round、Math.floor、toFixed等的使用

JavaScript循环计数器

JS经常会遇到延迟执行的动作,并且失败后自动尝试,尝试N次之后就不再尝试的需求,今天刚好又遇到,于是写个闭包,以后不断完善继续复用。检查并计数第一个参数用来标记是尝试哪个动作的,第二个参数是最大尝试次数

js 位运算符_js按位运算符及其妙用

大多数语言都提供了按位运算符,恰当的使用按位运算符有时候会取得的很好的效果。在我看来按位运算符应该有7个:& 按位与、| 按位或、^ 按位异或、~ 按位非

PHP取整、四舍五入取整、向上取整、向下取整、小数截取

PHP取整数函数常用的四种方法:1.直接取整,舍弃小数,保留整数:intval(); 2.四舍五入取整:round(); 3.向上取整,有小数就加1:ceil(); 4.向下取整:floor()。

js 浮点小数计算精度问题 parseFloat 精度问题

在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题,parseFloat(price*100 * quantity)的计算结果是7693.000000000001 使用Math.round()方法四舍五入,再除100 即为正确的结果 PS:顺便学到了一点:Math.ceil() Math.floor() Math.round() 的区别

JavaScript 中的相等操作符 ( 详解 [] == []、[] == ![]、{} == !{} )

ECMAScript 中的相等操作符由两个等于号 ( == ) 表示,如果两个操作数相等,则返回 true。相等操作符会先转换操作数(通常称为强制转型),然后比较它们的相等性。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!