Java格式输出

时间:2012-10-14 18:29:13

标签: java format tostring pow

我根本没有Java经验,并且使用文本编辑器编写代码,所以我无法看到问题所在(我从命令行运行) 我看到错误,知道它是什么,但我不知道如何解决它

System.out.print(String.format("%7d", Math.pow(n,2).toString()));

我也试过没有.toString() 基本上如果我只打印n它可以工作,但power函数给我一个错误可能是因为返回类型,但pow应该返回一个double,字符串格式%7d可能也是双重权利?

5 个答案:

答案 0 :(得分:3)

您使用了错误的格式说明符.. %d用于整数。

Math.pow()返回原始double,您无法在其上调用toString()方法。

尝试使用适用于%7s的{​​{1}},并将原始双值转换为String: -

Wrapper type

但是,您不需要将参数转换为String.format("%7s", Double.valueOf(Math.pow(n,2)).toString()) ,您可以直接将Stringdouble value一起使用: -

%f

答案 1 :(得分:1)

如果没有f,您很可能希望使用d而不是toString。如果你真的能够做toString(正如Quoi指出的那样,你无法从原语中做到),那么就不可能使用期望使用过的Formatter对象的Number(在你的情况下Double

这是Formatter使用的String.format

答案 2 :(得分:0)

Math#pow(double,double)返回原始double值,您无法调用toString方法。 使用f代替d,d代表十进制整数。

 System.out.format("%7f", Math.pow(n,2));

最好从Eclipse或任何其他编辑器开始编写代码。

答案 3 :(得分:0)

问题在于toString方法。您已指定格式说明符%7d,表示integer。你无法打印字符串代替它。

答案 4 :(得分:0)

double的正确格式是%f而非%d,因此请将代码修改为:

 System.out.print(String.format("%7f",  Math.pow(n,2)));

另见:link