我尝试仅用2位小数打印我的Array Double。但是我找不到在谷歌怎么办。请帮忙吗?
package com.company;
import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;
public class java_05_16_05_01 {
public static void main(String[] args){
ArrayList<Double> salary=new ArrayList<Double>();
int NumberPersonSurveyed = ThreadLocalRandom.current().nextInt(1, 10+1);
for(int i=0; i<NumberPersonSurveyed; i++){
double salaryPerson = ThreadLocalRandom.current().nextDouble(1000, 10000+1);
salary.add(salaryPerson);
}
System.out.println(salary);
}
}
实际上,输出是:
[9803.056390825992,
2753.180103177606,
2602.5359323328644,
3319.2942269101018]
但我期望:
[9803.056,
2753.18,
2602.53,
3319.29]
注意我想使用Math.random或类似的ThreadLocalRandom实例。
非常感谢!
最佳答案
由于您正在模拟工资,因此您可以简单地生成int
值(以美分为单位),然后除以100(然后转换为两倍)即可得到结果。
像这样:
double salaryPerson = ThreadLocalRandom.current().nextInt(100 * 1000, 100 * (10000 + 1)) / 100d;
这种方法使您摆脱了字符串格式化问题,并且,如果您希望除了打印之外还执行其他操作,还可以使用精确值来处理数据。
关于java - ThreadLocalRandom double 2小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52080164/