我根本没有Java经验,并且使用文本编辑器编写代码,所以我无法看到问题所在(我从命令行运行) 我看到错误,知道它是什么,但我不知道如何解决它
System.out.print(String.format("%7d", Math.pow(n,2).toString()));
我也试过没有.toString()
基本上如果我只打印n它可以工作,但power函数给我一个错误可能是因为返回类型,但pow应该返回一个double,字符串格式%7d可能也是双重权利?
答案 0 :(得分:3)
您使用了错误的格式说明符.. %d
用于整数。
Math.pow()
返回原始double
,您无法在其上调用toString()
方法。
尝试使用适用于%7s
的{{1}},并将原始双值转换为String
: -
Wrapper type
但是,您不需要将参数转换为String.format("%7s", Double.valueOf(Math.pow(n,2)).toString())
,您可以直接将String
与double 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)