Math函数生成随机数用法

1.Math.random() 生成0~0.9999的随机数 [0,1)

代码:

@Test
public void random(){
    double random = Math.random();// 生成0~0.99999的随机数
    Integer random1 = (int)(random*9000+1000);// 生成0~10000的四位随机数
    System.out.println(random);
    System.out.println(random1);
}

结果

0.12933433949658346
1294

2.Math.round(),Math.ceil(),Math.floor()的区别

2.1、Math.round() “四舍五入”, 该函数返回的是一个四舍五入后的的整数

代码

@Test
public void round(){
    long round = Math.round(99.999);
    long round1 = Math.round(99.40);
    long round2 = Math.round(-99.999);
    long round3 = Math.round(-99.30);
    // 四舍五入,根据小数点第一位进行判断,如果>=5整数部分加1,如果<5去除小数
    System.out.println(round);// 结果 100
    System.out.println(round1);// 结果 99
    System.out.println(round2);// 结果 -100
    System.out.println(round3);// 结果 -99
}
2.2、Math.ceil() “向上取整”, 即小数部分直接舍去,并向正数部分进1

代码

@Test
public void ceil(){
    double ceil = Math.ceil(56.23);
    double ceil1 = Math.ceil(23.68);
    double ceil2 = Math.ceil(-69.26);
    double ceil3 = Math.ceil(-53.63);
    // 向上取整,如果是正数直接加一,如果是负数,直接去除小数
    System.out.println(ceil);// 结果 57.0
    System.out.println(ceil1);// 结果 24.0
    System.out.println(ceil2);// 结果 -69.0
    System.out.println(ceil3);// 结果 -53.0
}
2.3、Math.floor() “向下取整” ,即小数部分直接舍去

代码

@Test
public void floor(){
    double floor = Math.floor(23.55);
    double floor1 = Math.floor(36.05);
    double floor2 = Math.floor(-68.26);
    double floor3 = Math.floor(-99.99);
    // 向下取整,如果是正数小数部分直接去掉,如果是负数看小数点第一位,如果>=5整数部分减1,如果<5去除小数
    System.out.println(floor);// 结果 23.0
    System.out.println(floor1);// 结果 36.0
    System.out.println(floor2);// 结果 -68.0
    System.out.println(floor3);// 结果 -100.0
    double floor4 = Math.floor(8.54 * 100);
    System.out.println(floor4);
    //【注】Math.floor();这种函数慎用,他的精度不准确,举个列子
    //对小数9.54 保留两位小数(虽然它已经保留了 2 位小数):
    //Math.floor(8.54*100) Math.floor(9.54*100) // 输出结果为 853,953 而不是 854,954。
}

3、Math函数一些其他的用法

 @Test
    public void math(){
        double min = Math.min(23.55,25.55); // 输出最小值(两值做比较)
        double max = Math.max(36.05,37.99); // 输出最大值(两值做比较)
        double floorDiv = Math.floorDiv(200,20); // 两数相除(200.0/20.0=10.0)
        System.out.println(min);// 结果 23.55
        System.out.println(max);// 结果 37.99
        System.out.println(floorDiv);// 结果 10.0
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值