获取随机金额(上限下限都要取到)
1、随机金额为最大值与最小值之间的二位小数
/**
* 获取随机券金额
* 随机金额为最大值与最小值之间的二位小数。
* @param maxValue,minValue
* @return newrandomNum
*/
private BigDecimal getValue(BigDecimal maxValue ,BigDecimal minValue){
double randomNum =Math.round((Math.random()*(maxValue.doubleValue() - minValue.doubleValue()) + minValue.doubleValue()) * 100);
DecimalFormat dfm = new DecimalFormat ("00");
String newrandomNum = dfm.format(randomNum);
return BigDecimal.valueOf(Double.parseDouble(newrandomNum)).divide(new BigDecimal(100));
} public static void main(String[] args) {
Map map = new HashMap();
BigDecimal maxValue = https://www.it610.com/article/new BigDecimal(8);
BigDecimal minValue = new BigDecimal(3);
for(int i=0;
i<10000;
i++){
BigDecimal b = new BaseSendCouponServiceImpl().getValue(maxValue,minValue);
if(map.get(b) == null){
map.put(b, 1);
} else {
map.put(b, map.get(b) + 1);
}}for(Map.Entry entry:map.entrySet()) {
System.out.println(entry.getKey() +"" + entry.getValue());
}
}
【获取随机金额(上限下限都要取到)】2、随机金额为最大值与最小值之间的整数
private BigDecimal getValue(BigDecimal maxValue ,BigDecimal minValue){
double randomNum =Math.round((Math.random()*(maxValue.doubleValue() - minValue.doubleValue()) + minValue.doubleValue()));
DecimalFormat dfm = new DecimalFormat ("00");
String newrandomNum = dfm.format(randomNum);
return BigDecimal.valueOf(Double.parseDouble(newrandomNum));
} public static void main(String[] args) {
Map map = new HashMap();
BigDecimal maxValue = https://www.it610.com/article/new BigDecimal(8);
BigDecimal minValue = new BigDecimal(3);
for(int i=0;
i<100000;
i++){
BigDecimal b = new BaseSendCouponServiceImpl().getValue(maxValue,minValue);
if(map.get(b) == null){
map.put(b, 1);
} else {
map.put(b, map.get(b) + 1);
}}for(Map.Entry entry:map.entrySet()) {
System.out.println(entry.getKey() +"" + entry.getValue());
}
}
3、同事写的
public static BigDecimal getRandomValueBetween(BigDecimal maxValue, BigDecimal minValue) {if (maxValue =https://www.it610.com/article/= null || minValue == null) {
return BigDecimal.ZERO;
}BigDecimal factor = new BigDecimal(new Random().nextInt(101) ).divide(new BigDecimal(100.00));
BigDecimal randomNum = factor.multiply(maxValue.subtract(minValue).add(minValue)).setScale(1, BigDecimal.ROUND_HALF_UP);
return randomNum;
}
转载于:https://www.cnblogs.com/time-on/p/9761516.html
推荐阅读
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- EditText默认不获取焦点弹出键盘
- whlie循环和for循环的应用
- 临床统计学学习日志
- 【实用教程】4种获取无水印视频素材的方法
- 插件化无法获取或找到.so文件
- 获取知识的门槛
- 提取ipa|提取ipa 包内资源
- SpringBoot|SpringBoot 属性配置中获取值的方式
- django|django 获取用户的域名