ACM2002题, 有很大的坑啊,
import java.text.DecimalFormat;
import java.util.Scanner;
public class Acm2002 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextDouble()) {
final double PI = 3.1415927;
double tmp = sc.nextDouble();
double result = PI * tmp * tmp * tmp * 4.0/3;
DecimalFormat df = new DecimalFormat("0.000");
System.out.println(df.format(result));
}
}
}
对于这个题,之前一直用的是 DecimalFormat df = new DecimalFormat("#.###");但是结果一直都是错误的,就查了一下, 结果最主要的问题就是这个#.### 和 0.000 的用法上
,如果用#.### , 当结果是整数的时候,那么就不会保留三位小数,但0.000不管是不是小数,结果都会保留三位小数,具体的源代码还没有看是什么,是怎么实现的,等之后研究甚了在研究吧