Java - 只显示两个小数点?

Val*_*ffe 2 java arrays decimalformat

所以我的程序也做了我想要的所有事情,除了在随机数为临时数生成时只显示小数点后的2个位置(12.00).它现在正在做的是(12.1234567897654).

我是java的初学者,这是我自己完成的第一个程序,所以如果答案很明显,请不要吝啬D:

我试过printf和%.2f,但我不能让它工作

public class ArrayOfTemperatures
{
  public static void main(String[] args)
   {

  double [] temp = new double [7];


  double random = Math.random() * 100 + 1;

  temp[0] = Math.random() * 100 + 1;

     //Calculating average          
     int sum = 0;
     for (int i = 0; i < temp.length; i++) {
        temp[i] =  Math.random() * 100 + 1;
        sum += temp[i];
      }

     //average being stated
     double average = (double) sum / temp.length;
     System.out.println("The average temperature is " + average);

    //Temperatures
    for (int i = 0; i < temp.length; i++) {
     temp[i] =  Math.random() * 100 + 1;
     System.out.print("Temperature " + (i + 1) + " is: " + temp[i]);
        if (temp[i] > average){
           System.out.println(" and is above average.");
        }
        else {
           System.out.println(" and is below average.");
        }


      }          

   }         
}
Run Code Online (Sandbox Code Playgroud)

输出的一个例子是:

The average temperature is 42.714285714285715
Temperature 1 is: 14.71803486458223 and is below average.
Temperature 2 is: 33.10321474550992 and is below average. 
Temperature 3 is: 18.661262675746727 and is below average. 
Temperature 4 is: 82.12893152205741 and is above average. 
Temperature 5 is: 90.97086140892438 and is above average. 
Temperature 6 is: 19.609064446916477 and is below average. 
Temperature 7 is: 75.47742502105827 and is above average. 
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您想将其用于显示目的,请使用java.text.DecimalFormat:

new DecimalFormat("#.##").format(dblVar);
Run Code Online (Sandbox Code Playgroud)

如果您需要它进行计算,那么:

Math.floor(value * 100) / 100
Run Code Online (Sandbox Code Playgroud)

资料来源:Bozho的原始答案