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

该博客介绍了一个Java方法,用于生成指定范围内的随机数,并精确到指定的小数位数。通过使用BigDecimal类,实现了在2f和1.5f之间随机生成保留一位小数的数值,可以用于各种需要随机浮点数的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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 位小数,并四舍五入
        }
}

转载:https://blog.youkuaiyun.com/zhangyuxyu/article/details/98851887

### Java生成指定小数位数的 Double 类型随机数 为了在 Java生成具有特定小数位数的 `double` 类型随机数,可以采用如下方法: 通过使用 `Math.random()` 函数来获取一个介于 0.0 和 1.0 之间的伪随机数。接着乘以所需的范围并加上最小值,最后利用 `BigDecimal` 来控制保留的小数位数。 ```java import java.math.BigDecimal; import java.math.RoundingMode; public class RandomDoubleGenerator { public static double generateRandomDoubleWithDecimals(double min, double max, int scale) { double randomValue = (Math.random() * ((max - min) + 1)) + min; BigDecimal bd = new BigDecimal(Double.toString(randomValue)); bd = bd.setScale(scale, RoundingMode.HALF_UP); return bd.doubleValue(); } } ``` 此代码片段定义了一个名为 `generateRandomDoubleWithDecimals` 的静态方法,该方法接收三个参数:最小值 (`min`)、最大值 (`max`) 及所需的小数位数 (`scale`)。它返回一个经过四舍五入处理后的双精度浮点数值[^3]。 #### 使用示例 假设想要生成一个小数点后有两位有效数字,在区间 `[5.5, 7.5)` 范围内随机数,则调用方式如下所示: ```java double randomNumber = RandomDoubleGenerator.generateRandomDoubleWithDecimals(5.5, 7.49, 2); System.out.println("Generated Random Number: " + randomNumber); ``` 上述例子将会打印出形如 “Generated Random Number: 6.83” 这样的输出结果,其中小数部分精确到了第二位[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值