2014-01-28 4 views
0

Java начинающий здесь, но я искренне стараюсь. Цель этой программы - прочитать два значения из файла Realtor11.txt и присвоить их переменным.Прочитайте текстовый файл и присвойте значения переменным

Содержимое Realtor11.txt не (без пробелов):

Джон

См раздел // Читаем Realtor11.txt Не уверен, что я делаю неправильно, но в настоящее время ошибка is

Realtor11.java:48: ошибка: несовместимые типы price = in.readLine(); ^ требуется: двойной найдено: String 1 ошибка Ошибка: Не удалось найти или загрузить основной класс Realtor11 [Законченный в 1.1s]

// java class for keyboard I/O 
import java.util.Scanner; 
// java class for JOption GUI 
import javax.swing.JOptionPane; 
// File reader 
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.InputStream; 

public class Realtor11 
{ 
    public static void main(String[] args) 
    { 
    // Keyboard and file input 
     Scanner console = new Scanner(System.in); 
     Scanner inputStream = null; 
    // price of the house, the cost to sell the house and the commission 
     double price, cost, commission; 
    // seller’s name 
     String seller; 

    // GUI diplay message declaration 
     String display_message = "This program calculates the cost to sell a home\n" 
     + "and the commission paid to an individual sales agent.\n\n" 
     + "The user is asked for the last name of the seller and the\n" 
     + "sales price.\n\n"; 

    // Output descriptive messages 
     JOptionPane.showMessageDialog(null, display_message, "Lab 1 Description", JOptionPane.INFORMATION_MESSAGE); 

    // Read Realtor11.txt 
     try { 
      BufferedReader in = new BufferedReader(new FileReader("Realtor11.txt")); 
      while (in.read()!= -1); 
      seller = in.readLine(); 
      price = in.readLine(); 
      in.close(); 
      } 
      catch (IOException e) {} 

    // calculate the cost and the commission 
     cost = 0.06 * price; 
     commission = 0.015 * price; 
    // display the input and results 
     String 
      out1 = String.format("%nThe " + seller + "’s" + " home sold for $%.2f%n", price), 
      out2 = String.format("The cost to sell the home was $%.2f%n", cost), 
      out3 = String.format("The selling or listing agent earned $%.2f%n", commission); 

     JOptionPane.showMessageDialog(null, out1 + out2 + out3, seller + "'s Home Sale", JOptionPane.INFORMATION_MESSAGE); 

    // Output to file 
    // still writing this. 

    } 
} 

ответ

5

Метод readLine() возвращает String значение, где вы ожидаете a double значение (see API). Вы должны преобразовать значение String в double, как так:

price = Double.parseDouble(in.readLine()); 
+0

Спасибо! Я понятия не имел, что могу это сделать. Я прочитал документы Oracle и не нашел такого синтаксиса. –

+0

Нет проблем. Просто помните, что вам нужно преобразовать, когда это необходимо. Кроме того, если вы нашли правильный ответ, отметьте его правильно: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

0

функция Readline() возвращает строку. Вам нужно будет вручную преобразовать эту ценовую строку в двойную double price = Double.parseDouble (строковая версия цены);

Смежные вопросы