[英]The method println(double) in the type PrintStream is not applicable for the arguments (String, double)
[英]error: no suitable method found for println(String,float)? method PrintStream.println(float) is not applicable?
我试图在同一个 println 语句中打印 (int, boolean, char, double) 。
导入 java.util.Scanner;
class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
float num1 = input.nextFloat();
float num2 = input.nextFloat();
float num3 = input.nextFloat();
float num4 = input.nextFloat();
if(num1 <= 0 && num2 <= 0 && num3 <= 0 && num4 <= 0){
float equal = num1 + num2 + num3 + num4;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 >= 0 && num3 <= 0 && num4 <= 0){
float equal = num1 + num3 + num4;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 <= 0 && num3 >= 0 && num4 <= 0){
float equal = num1 + num2 + num4;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 <= 0 && num3 <= 0 && num4 >= 0){
float equal = num1 + num2 + num3;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 >= 0 && num3 >= 0 && num4 >= 0){
float equal = num1;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 <= 0 && num3 >= 0 && num4 >= 0){
float equal = num2;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 >= 0 && num3 <= 0 && num4 >= 0){
float equal = num3;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 >= 0 && num3 >= 0 && num4 <= 0){
float equal = num4;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 <= 0 && num3 >= 0 && num4 >= 0){
float equal = num1 + num2;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 >= 0 && num3 <= 0 && num4 >= 0){
float equal = num1 + num3;
System.out.println("%.2f", equal);
} else if(num1 <= 0 && num2 >= 0 && num3 >= 0 && num4 <= 0){
float equal = num1 + num4;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 <= 0 && num3 <= 0 && num4 >= 0){
float equal = num2 + num3;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 <= 0 && num3 >= 0 && num4 <= 0){
float equal = num2 + num4;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 >= 0 && num3 <= 0 && num4 <= 0){
float equal = num3 + num4;
System.out.println("%.2f", equal);
} else if(num1 >= 0 && num2 >= 0 && num3 >= 0 && num4 >= 0){
float equal = 0.00;
System.out.println("%.2f", equal);
}
}
}
我不明白为什么这行不通。 请给我解释一下。
System.out
的类型是PrintStream
。 方法println()
有几个重载,但它们的共同点是它们要么不带参数,要么只带一个参数。
您正在寻找的方法 - 需要插入格式字符串和多个值 - 是PrintStream.format()
:
公共打印流格式(字符串格式,对象...参数)
使用指定的格式字符串和参数将格式化的字符串写入此输出流。
您可以使用System.out.printf
而不是System.out.println
,在要打印的值之前使用字符串%.2f
,就像您在代码中所做的那样:
`
if(num1 <= 0 && num2 <= 0 && num3 <= 0 && num4 <= 0){
float equal = num1 + num2 + num3 + num4;
System.out.printf("%.2f", equal);
}
`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.