Java SE 8u5中的printf - 打印加倍到2位小数

时间:2014-05-14 19:19:29

标签: java formatting decimal printf

我是Java的新手,并且正在编写一本书,我的一个伙伴让我借钱。但是,我相信这本书可能有点过时了。

我正在尝试打印价格,为此本书使用了示例(packPrice& packVolume都是使用in.nextDouble()输入的双变量):

double pricePerOunce = packPrice / packVolume;

System.out.printf("Price per ounce: %8.2f", pricePerOunce);
System.out.println();

但是,当我在Java SE 8u5(Windows 64位)中尝试完全相同的代码时,我收到错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method printf(String, Object[]) in the type PrintStream is not applicable for        
        the arguments (String, double)

有没有人能解决我的问题?如果需要更多信息,请告诉我。

提前致谢!

2 个答案:

答案 0 :(得分:0)

Why am I getting a compilation errors with a simple printf?

"检查项目的编译器合规性级别是否至少为1.5:

项目>属性> Java编译器

如果未设置启用项目特定设置,请使用该页面上的“配置工作区设置...”链接检查全局编译器合规性级别。"

答案 1 :(得分:0)

输出具有小数精度的double的另一种可能方法是这样做,

double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));

此示例和类似问题可在此处找到:set double format with 2 decimal places