我对Java很陌生,我只是想通过一些课堂练习。
我已经完成了从给定半径计算用户周长和圆圈面积的任务。
import java.util.Scanner;
public class Circle {
public static void main(String[] args) {
System.out.println("Please enter the radius of your circle below: ");
Scanner input = new Scanner(System.in);
float r =input.nextFloat();
float p = (float) (2 * Math.PI * r);
float a = (float) ((Math.PI) * Math.pow(r,2));
System.out.format("Your perimeter is %.3f", p + " and your area is %.3f", a);
}
}
到目前为止,这是我的代码,我非常确定这是我所需要的,但编译器却抛出错误:
'线程中的异常" main" java.util.IllegalFormatConversionException:f!= java.lang.String'
我尝试过几次使用System.out系列,但我无法弄清楚我哪里出错了!
有什么想法吗?在此先感谢:)
答案 0 :(得分:5)
p + " and your area is %.3f"
被解释为String
。使用
System.out.format("Your perimeter is %.3f and your area is %.3f", p, a);
答案 1 :(得分:3)
System.out.format("Your perimeter is %.3f and your area is %.3f", p, a);
原因是因为format方法要求第一个arg是格式字符串,后跟要打印的对象的varargs。你传递一个字符串作为第二个参数,并且你试图将它格式化为float,这导致抛出异常。