public static void main(String[] args) {
Map<Double, String> map=new HashMap<>();
double min = 3000;
double max = 3500; // 总和
int cnt = 2; // 数量
int scl = 2; // 小数最大位数
int pow = (int) Math.pow(10, scl); // 用于提取指定小数位
double sum = 0; // 用于验证总和
// for (int i = 0; i < cnt; i ++) {
while(1==1){
double one=0 ;
one = Math.floor((Math.random() * (max - min) + min) * pow) / pow;
// if ( i < cnt - 1 ) {
// // min~max 指定小数位的随机数
// } else {
// one = max;
// }
// max -= one;
// sum += one;
if(map.size()==500){
break;
}
if(one>3000&&one<3500&&one>0){
if(map.get(one)==null){
DecimalFormat df = new DecimalFormat("#.00");
map.put(one, df.format(one));
}
}
}
// 输出
// System.out.println(one);
// System.out.printf("%.2f\r\n", one);
// }
for (Map.Entry<Double, String> entry : map.entrySet()) {
System.out.println(entry.getValue());
}
// 验证
// System.out.println(sum);
}
Map<Double, String> map=new HashMap<>();
double min = 3000;
double max = 3500; // 总和
int cnt = 2; // 数量
int scl = 2; // 小数最大位数
int pow = (int) Math.pow(10, scl); // 用于提取指定小数位
double sum = 0; // 用于验证总和
// for (int i = 0; i < cnt; i ++) {
while(1==1){
double one=0 ;
one = Math.floor((Math.random() * (max - min) + min) * pow) / pow;
// if ( i < cnt - 1 ) {
// // min~max 指定小数位的随机数
// } else {
// one = max;
// }
// max -= one;
// sum += one;
if(map.size()==500){
break;
}
if(one>3000&&one<3500&&one>0){
if(map.get(one)==null){
DecimalFormat df = new DecimalFormat("#.00");
map.put(one, df.format(one));
}
}
}
// 输出
// System.out.println(one);
// System.out.printf("%.2f\r\n", one);
// }
for (Map.Entry<Double, String> entry : map.entrySet()) {
System.out.println(entry.getValue());
}
// 验证
// System.out.println(sum);
}