简体   繁体   English

错误:找不到适合 println(String,float) 的方法? 方法 PrintStream.println(float) 不适用?

[英]error: no suitable method found for println(String,float)? method PrintStream.println(float) is not applicable?

I was trying to print (int, boolean, char, double) in a same println statement .我试图在同一个 println 语句中打印 (int, boolean, char, double) 。

import java.util.Scanner;导入 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);
        }
    }
}

I don't understand why this won't work.我不明白为什么这行不通。 Please explain me this.请给我解释一下。

The type of System.out is PrintStream . System.out的类型是PrintStream There are several overeloads of the method println() , but what they all have in common is that they take either no or a single parameter.方法println()有几个重载,但它们的共同点是它们要么不带参数,要么只带一个参数。

The method you are looking for - that takes a format string and multiple values to be inserted - is PrintStream.format() :您正在寻找的方法 - 需要插入格式字符串和多个值 - 是PrintStream.format()

public PrintStream format(String format, Object... args)公共打印流格式(字符串格式,对象...参数)

Writes a formatted string to this output stream using the specified format string and arguments.使用指定的格式字符串和参数将格式化的字符串写入此输出流。

You can use System.out.printf instead of System.out.println , using the String %.2f before of the value that you want to print, as you already did in your code:您可以使用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.

相关问题 PrintStream 类型中的方法 println(double) 不适用于 arguments (String, double) - The method println(double) in the type PrintStream is not applicable for the arguments (String, double) PrintStream 类型中的方法 println(boolean) 不适用于参数 (void) - The method println(boolean) in the type PrintStream is not applicable for the arguments (void) PrintStream 类型中的方法 println(int) 不适用于参数 (String, int, int, int) - The method println(int) in the type PrintStream is not applicable for the arguments (String, int, int, int) 找不到适合 println 的方法... Java - No suitable method found for println... Java 为什么`System.out.println(null);`give“方法println(char [])对于类型PrintStream错误是不明确的”? - Why does `System.out.println(null);` give “The method println(char[]) is ambiguous for the type PrintStream error”? PrintStream.println()行为— Java / Python /任何语言 - PrintStream.println() behavior — Java / Python / Any Language Java println 方法错误 - Java println method error println错误:位置类,方法println() - Error wtih println: Location class,method println() 在println中调用println方法 - Calling println method within println Eclipse在println方法上给出错误 - Eclipse giving error on a println method
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM