javascript - 数学的方法(Math)

139 阅读2分钟
在 JS 中 Math 对象给我们提供了操作数据的一些方法(数学的方法)
    1. random

      • 语法: Math.random()
      • 作用: 得到一个随机数, 每次生成的数字都不一样, 但一定是0~1之间的, 包含0, 不包含1, 也就是说最大值可能是 0.99999....
    1. round

      • 语法: Math.round(数字)
      • 作用: 将这个数字(小数), 按照四舍五入的形式变成整数
    1. ceil

      • 语法: Math.ceil(数字)
      • 作用: 将这个数字(小数) 向上取整
    1. floor

      • 语法: Math.floor(数字)
      • 作用: 将这个数字(小数) 向下取整
    1. abs

      • 语法: Math.abs(数字)
      • 作用: 返回这个数字的绝对值
    1. sqrt

      • 语法: Math.sqrt(数字)
      • 作用: 求 平方根
    1. pow

      • 语法: Math.pow(基数, 幂)
      • 作用: 返回基数的几次幂
    1. max

      • 语法: Math.max(数字1, 数字2, 数字3...)
      • 作用: 返回传入的数字中 最大的哪一个
    1. min

      • 语法: Math.min(数字1, 数字2, 数字3...)
      • 作用: 返回传入的数字中 最小的哪一个
    1. PI

      • 语法: Math.PI
      • 作用: 返回 π 代码

// 1: random 随机生成0-1之间的数字
    var num = Math.random()
    console.log(num)
    
// 2:round 四舍五入
    var num1 = Math.round(3.4999)  //3
    var num2 = Math.round(3.5)  //4
    console.log(num1)
    console.log(num2)
    
// 3:ceil 向上取整  
    var num1 = Math.ceil(1.0001)
    var num2 = Math.ceil(1.99999)
    console.log(num1)
    console.log(num2)

// 4: floor 向下取整
    var num1 = Math.floor(1.0001)
    var num2 = Math.floor(1.99999)
    console.log(num1)
    console.log(num2)
    
// 5:abs 绝对值
    var num1 = Math.abs(1.234)
    var num2 = Math.abs(-1.234)
    console.log(num1)
    console.log(num2)
    
// 6:sqrt 求平方根    
   var num = Math.sqrt(9)
   console.log(num)
   
// 7:pow 幂
    var num = Math.pow(2,3)
    console.log(num)
    
// 8:max 最大值
    var num = Math.max(100, 5, 7, 99, 102, 96, 999)
    console.log(num)
    
// 9:min 最小值
    var num = Math.min(100, 5, 7, 99, 102, 96, 1)
    console.log(num)
    
// 10:PI
    console.log(Math.PI)
练习:2. 封装一个函数, 函数返回一个 0~10 之间的 随机整数 0 1 2 3 4 5 6 7 8 9 10
function fn () {
    var num1 = Math.random()  //得到了一个随机数,但是是0-1之间的小数
    var num2 = num1 * (10 + 1)  // 得到了一个随机数, 区间为 0~10之间的
    var num3 = Math.floor(num2) // 通过四舍五入, 将这个随机数改变为 随机整数   
    rutern num3
}

// 验证一下概率问题
var obj = {}
for(var i = 0;i < 100000;i++){
    var sum = fn()  //循环开始,先拿到随机数的值
    if(obj[sum] == undefined){
        obj[sum] = 1  // 代表这个随机数第一次在数组内出现
    } else{
    // 如果执行这个分支,证明数组内已经有了这个值,但是第几次出现我们不知道,那就让他加1
        obj[sum]++  
    }
}

// 当前 四舍五入的形式有问题, 我们现在要么改为向上取整, 要么改为向下取整
// 如果说 使用向上取整, 数字应该计算为: -0.999~9.999 向上取整后为 0~10
// 如果说 使用向下取整, 数字应该计算为: 0~10.999 向下取整后为 0~10
// 通过分析认为 向下取整比较好计算, 所以我们的 取整方式更改为 向下取整
// 计算公式 Math.floor(随机数 * (10 + 1))