我不知道如何实现math.round()或任何其他解决方案来获取JTextField中的##.##

Ign*_*vis 2 java string swing jfreechart jtextfield

我正在显示平均值,JTextField我想将它四舍五入到小数点后两位以使用上面的代码来创建BarChart使用JFreeChart.我已经看过很多关于这方面的教程,但我不知道如何在我的代码中实现它.

那是我的清单:

List<Double> light = new ArrayList<Double>();
for (Measurement measurement : readMeasurements) {
light.add(Double.parseDouble(measurement.getLight()));}

double averageLight = Utils.calculateAverage(light);
textLight.setText(averageLight+" ...");
Run Code Online (Sandbox Code Playgroud)

这是我Utils计算的平均值:

public static double calculateAverage(List<Double> list){
        double av=0;
        double sum=0;

        for(double value : list){
            sum+=value;

        }
        av = sum/list.size();
        return av;
    }
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了textfiled输出##.################.

这里是cod e that creates BarChart using JFreeChart. It works when inJTextField的一部分output is ##.##:

String temperature = textTemp.getText();
String light = textLight.getText();
String vcc = textVcc.getText();

DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(new Double (temperature), "Measurements", "Temperature");
dataset.setValue(new Double (light), "Measurements", "Light");
dataset.setValue(new Double (vcc), "Measurements", "Vcc");
Run Code Online (Sandbox Code Playgroud)

如何对该代码进行任何更改以使输出JTextField类似##.##

Daw*_*ica 5

textLight.setText(String.format("%.2f", averageLight));
Run Code Online (Sandbox Code Playgroud)

"%.2f"是一个格式字符串,表示"将参数格式化为带有两个小数位的浮点数".有关可以在其中一个中使用哪些字符及其各自含义的更多详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html