簡體   English   中英

錯誤:找不到適合 println(String,float) 的方法? 方法 PrintStream.println(float) 不適用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM