Java格式输出

问题描述 投票:0回答:5

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

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

我也尝试过.toString()基本上,如果我只打印n,那么它会起作用,但是power函数可能会由于返回类型而给我一个错误,但是pow应该返回一个double,字符串格式%7d也可能是double的对吗?

java format tostring pow
5个回答
3
投票

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

Math.pow()返回无法在其上调用double方法的原语toString()

尝试使用用于%7sString,并将原始双精度值转换为Wrapper type:-

String.format("%7s", Double.valueOf(Math.pow(n,2)).toString())

但是,您不需要将参数转换为String,您可以将double value%f直接使用:-

String.format("%.3f", Math.pow(n,2));

1
投票

您很可能想在没有f的情况下使用d而不是toString。如果您确实能够执行toString(正如Quoi指出的那样,您不能从原语执行),则将无法使用期望使用Formatter对象的Number(在您的情况下为Double )。

这是Formatter使用的Formatter


0
投票

问题在于String.format方法。您已给定格式说明符String.format,即toString。您无法代替它来打印字符串。


0
投票

双精度格式是%f而不是%d,因此请将代码修改为:

%7d

另请参见:integer


0
投票

System.out.print(String.format("%7f", Math.pow(n,2))); 返回原始双精度值,您无法调用link方法。使用f而不是d,并且d是十进制整数。

Math#pow(double,double)

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

© www.soinside.com 2019 - 2024. All rights reserved.