Java 为双精度打印3个十进制数字
我应该求出一组给定数字的平均值,将它们相加,然后除以给定给我的数字,平均值必须有3个十进制数字,所以不是45.0,而是45.000,我的有效,但前提是最后一个数字不是0Java 为双精度打印3个十进制数字,java,Java,我应该求出一组给定数字的平均值,将它们相加,然后除以给定给我的数字,平均值必须有3个十进制数字,所以不是45.0,而是45.000,我的有效,但前提是最后一个数字不是0 import java.util.Scanner; import static java.lang.System.*; public class Average { private String line; private double average, sum, count; public Average
import java.util.Scanner;
import static java.lang.System.*;
public class Average
{
private String line;
private double average, sum, count;
public Average()
{
setLine("");
}
public Average(String s)
{
setLine(s);
}
public void setLine(String s)
{
line = s;
sum = 0.0;
count = 0.0;
average = 0.0;
}
public double getCount()
{
int num = 0;
while(num<line.length())
{
if(line.charAt(num) == 32)
{
count ++;
num ++;
}
else
num ++;
}
count ++;
return count;
}
public double getSum()
{
Scanner bobby = new Scanner(line);
while(bobby.hasNextInt())
sum = sum + bobby.nextInt();
return sum;
}
public double getAverage()
{
average = getSum()/getCount();
average = average*1000;
if(average%10>4)
{
average = Math.floor(average);
average ++;
average = average/1000.0;
}
else
{
average = Math.floor(average);
average = average/1000.0;
}
return average;
}
public String getLine()
{
return line;
}
public String toString()
{
return "";
}
}
使用
DecimalFormat
:
DecimalFormat df = new DecimalFormat("#.000");
System.out.println("Nummber: " + df.format(1.2345));
只是,你知道,三个而不是两个…问题到底是什么?你的代码做什么?你希望它做什么?还剩下什么?你自己做这件事有什么困难?什么让你困惑?我该怎么写呢?因为我说的是bob.getAverage,所以我会只做bob.df.format.getAverage吗?只需将bob.getAverage()传递给df#format(String)
DecimalFormat df = new DecimalFormat("#.000");
System.out.println("Nummber: " + df.format(1.2345));