>

다음 코드를 사용하여 이미 설정된 파일로 출력하는 경우 :

import java.util.Scanner;
import java.io.*;
public class BarakProductOrder
{
    public static void main(String[] args) throws IOException
    {
        //Establish scanner object
        Scanner input = new Scanner (System.in);
        //Declare variables
        String name, product, street, city, state, zip;
        int qty;
        double price;
        //Collect data
        System.out.println("Welcome to Matt's Dog Food Emporium!\n\nWhat is your name?");
        name = input.nextLine();
        System.out.println("Which product would you like to order today?");
        product = input.nextLine();
        System.out.println("How many would you like?");
        qty = input.nextInt();
        price = 4.56*qty;
        input.nextLine(); //Must be placed to not skip over "address" line
        System.out.println("Enter your street address:");
        street = input.nextLine();
        System.out.println("Enter the City:");
        city = input.nextLine();
        System.out.println("Enter the State (ex.: NY):");
        state = input.nextLine();
        System.out.println("Enter the Zip:");
        zip = input.nextLine();
        System.out.println("Thank you for your order, " + name);
        //Output data to file "BarakOrder.txt"
        PrintWriter outputFile = new PrintWriter("C:\\Users\\fbara\\Desktop\\CISS 110\\BarakOrder.txt");
        outputFile.println("Order Number: 001");
        outputFile.println("Product: " + product);
        outputFile.println("Quantity: " + qty);
        outputFile.printf("Price = 4.56*" + qty + " = $" + "%.2f" + price);
        outputFile.println("Customer Contact Info: " + name);
        outputFile.println("Address: " + street);
        outputFile.println(city + ", " + state + " " + zip);
        //Close scanner and file object
        input.close();
        outputFile.close();
        System.out.println("Data has been written.");
    }
}

45 행에서 "% .2f"수정자를 사용하면 다음과 같은 오류 메시지가 나타납니다.

와이즈 비즈

java.util.MissingFormatArgumentException: Format specifier '%.2f' at java.util.Formatter.format(Unknown Source) at java.io.PrintWriter.format(Unknown Source) at java.io.PrintWriter.printf(Unknown Source) at BarakProductOrder.main(BarakProductOrder.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267)

에서 잘못된 수정자를 사용하고 있습니까? ? 아니면 잘못된 ".print ()"줄?

outputFile.printf
  • 답변 # 1

    그게 printf 아니에요  공장;인쇄 할 형식을 지정하십시오.

    %.2f 를 사용하여 형식을 지정할 항목이 없습니다. 을 추가하려고합니다. 문서는 사용 방법에 대한 정보를 제공합니다 (세계에는 많은 예제가 있습니다).

    거의 :

    outputFile.printf("Price = 4.56*" + qty + " = $" + "%.2f", price);
    
    

    qty 에 대해 동일한 형식을 사용하지 않는지 잘 모르겠습니다. .

  • 이전 Primefaces가 html 태그 JSF의 ID를 자동으로 생성하지 않습니까?
  • 다음 c# - Unity가 Systemdatadll을로드 할 수 없습니다