欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java生成指定范围、指定小数位数的随机数

程序员文章站 2022-05-18 18:41:57
...

最近在项目中碰到了这个问题,需要生成指定小数位数的一个随机数,java中貌似没有直接可以用的API,需要自及写一个方法去实现,先贴下代码,如下:

import java.math.BigDecimal;

public class Test {
        public static void main(String[] args) {
            Test t = new Test();
            for (int i = 0; i <= 100; i++) {
                System.out.println(t.makeRandom(2f,1.5f,1));
            }
        }

    /**
     * 生成指定范围,指定小数位数的随机数
     * @param max 最大值
     * @param min 最小值
     * @param scale 小数位数
     * @return
     */
        BigDecimal makeRandom(float max,float min,int scale){
            BigDecimal cha = new BigDecimal(Math.random() * (max-min) + min);
            return cha.setScale(scale,BigDecimal.ROUND_HALF_UP);//保留 scale 位小数,并四舍五入
        }
}

运行结果如下:
java生成指定范围、指定小数位数的随机数
Math.random()方法生成一个[0,1)的随机数,因此我们将等式拆分,可得出等式取值范围为:
[min + (二者差值)*0,min + (二者差值)*1)======》[min,max),
这里来看,貌似是取不到max的值的,但是经过四舍五入后,便可以取到.以上就是java生成指定小数位数随机数的代码。

相关标签: java Random