常用的math 方法

2024-06-12 07:36
文章标签 方法 math 常用

本文主要是介绍常用的math 方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Math.abs(x)

函数返回一个数字的绝对值。(返回绝对值)

  function difference(a, b) {return Math.abs(a - b);}console.log(difference(3, 5));//  2console.log(difference(5, 3));//  2console.log(difference(1.23456, 7.89012));//  6.6555599999999995
Math.abs() 将其参数强制转换为数字。无法强制转换的值将变成 NaN,使 Math.abs() 也返回 NaN。Math.abs("-1"); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs(""); // 0
Math.abs([]); // 0
Math.abs([2]); // 2
Math.abs([1, 2]); // NaN
Math.abs({}); // NaN
Math.abs("string"); // NaN
Math.abs(); // NaN

Math.floor()

函数总是返回小于等于一个给定数字的最大整数。(向下取整)

console.log(Math.floor(5.95));
// 5
console.log(Math.floor(5.05));
// 5
console.log(Math.floor(5));
// 5
console.log(Math.floor(-5.05));
// -6

Math.ceil()

静态方法总是向上舍入,并返回大于等于给定数字的最小整数。(向上取整)

console.log(Math.ceil(0.95));
//  1
console.log(Math.ceil(4));
// 4
console.log(Math.ceil(7.004));
//  8
console.log(Math.ceil(-7.004));
// -7

Math.random()

静态方法返回一个大于等于 0 且小于 1 的伪随机浮点数,并在该范围内近似均匀分布,然后你可以缩放到所需的范围。其实现将选择随机数生成算法的初始种子;它不能由用户选择或重置。(随机数)

  function getRandomInt(max) {return Math.floor(Math.random() * max);}console.log(getRandomInt(3));// 0, 1 or 2console.log(getRandomInt(1));//  0console.log(Math.random());// a number from 0 to <1
 

得到一个大于等于 0 小于 1 之间的随机数

function getRandom() {return Math.random();
}

得到一个两数之间的随机数

该示例返回一个在指定值之间的随机数。这个值不小于(且有可能等于)min,并且小于(且不等于)max

function getRandomArbitrary(min, max) {return Math.random() * (max - min) + min;
}

得到一个两数之间的随机整数

这个示例返回一个在指定值之间的随机整数。这个值不小于 min(如果 min 不是整数,则不小于 min 的向上取整数),且小于(但不等于)max

function getRandomInt(min, max) {const minCeiled = Math.ceil(min);const maxFloored = Math.floor(max);return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // 不包含最大值,包含最小值
}

得到一个两数之间的随机整数,包括两个数在内

虽然上面的 getRandomInt() 函数包含最小值,但不含最大值。如果你需要结果同时包含最小值和最大值怎么办?下面的 getRandomIntInclusive() 函数可以实现这一点。

function getRandomIntInclusive(min, max) {const minCeiled = Math.ceil(min);const maxFloored = Math.floor(max);return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // 包含最小值和最大值
}

Math.round()

函数返回一个数字四舍五入后最接近的整数。

x = Math.round(20.49); //20
x = Math.round(20.5); //21
x = Math.round(-20.5); //-20
x = Math.round(-20.51); //-21

Math.trunc()

方法会将数字的小数部分去掉,只保留整数部分。

Math.trunc(13.37); // 13
Math.trunc(42.84); // 42
Math.trunc(0.123); //  0
Math.trunc(-0.123); // -0
Math.trunc("-1.123"); // -1
Math.trunc(NaN); // NaN
Math.trunc("foo"); // NaN
Math.trunc(); // NaN

Math.sqrt()

函数返回一个数的平方根

function calcHypotenuse(a, b) {return Math.sqrt(a * a + b * b);
}
console.log(calcHypotenuse(3, 4));
// 5
console.log(calcHypotenuse(5, 12));
// 13
console.log(calcHypotenuse(0, 0));
// 0
​
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1);  // 1
Math.sqrt(0);  // 0
Math.sqrt(-1); // NaN
Math.sqrt(-0); // -0

Math.max()

函数返回作为输入参数的最大数字,如果没有参数,则返回 -Infinity。

console.log(Math.max(1, 3, 2));
// 3
console.log(Math.max(-1, -3, -2));
//  -1
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// 3

获取数组的最大元素

Array.prototype.reduce() 可以用来查找最大值元素,通过比较每个值:

const arr = [1, 2, 3];
const max = arr.reduce((a, b) => Math.max(a, b), -Infinity);

下面的方法使用 Function.prototype.apply() 来获取数组的最大值。getMaxOfArray([1, 2, 3]) 相当于 Math.max(1, 2, 3),但是你可以使用 getMaxOfArray() 作用于任意长度的数组上。这应该只用于元素相对较少的数组。

function getMaxOfArray(numArray) {return Math.max.apply(null, numArray);
}

展开语法是编写 apply 解决方案的一种更简短的方法,可以最大限度地利用数组:

const arr = [1, 2, 3];
const max = Math.max(...arr);

Math.min()

函数返回作为输入参数的数字中最小的一个,如果没有参数,则返回 Infinity。

console.log(Math.min(2, 3, 1));
// 1
console.log(Math.min(-2, -3, -1));
// -3
const array1 = [2, 3, 1];
console.log(Math.min(...array1));
// 1

使用 Math.min()

下例找出 xy 的最小值,并把它赋值给 z

const x = 10;
const y = -20;
const z = Math.min(x, y); // -20

使用 Math.min() 裁剪值

Math.min() 经常用于裁剪一个值,以便使其总是小于或等于某个边界值。例如:

let x = f(foo);
​
if (x > boundary) {x = boundary;
}
可以写成:const x = Math.min(f(foo), boundary);

Math.log10()

函数返回一个数字以 10 为底的对数

Math.log10(10); // 1
Math.log10(100); // 2
Math.log10("100"); // 2
Math.log10(1); // 0
Math.log10(0); // -Infinity
Math.log10(-2); // NaN
Math.log10("foo"); // NaN

查看更多的方法,请参观

Math - JavaScript | MDN (mozilla.org)icon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math

这篇关于常用的math 方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053583

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE