2017-04-27 33 views
-2

我在写一个程序,它从文本文件中获取贷款金额,利率和总额。它应该将利率更新为总利息,并且对于总付款也是如此。然后它应该计算每月付款。运算符不能应用于java字符串

我一直得到的错误运算符不能应用于包括贷款计算的Java字符串。我猜这是因为你不能在计算中使用字符串?也许我错了。我很难过。

例输入:

56750.00 .065 72.00 
43675.00 .075 48.00 
64950.00 .045 36.00 
24799.00 .085 48.00 

我的代码

import java.io.*; 
import java.util.*; 
import java.text.*; 

public class DB4 
{ 
    static Scanner keyboard = new Scanner(System.in); 

    public static void main(String[] args) throws FileNotFoundException 
    { 
     String loan; 
     int Count = 0; 
     double interest = 0; 
     double Numberofmonths = 0; 
     double totint; 
     double totpay; 
     double monthly; 

     Scanner inFile= new Scanner(new FileReader("Project4InData.txt")); 

     PrintWriter outFile = new PrintWriter("Project4.out"); 

     while (inFile.hasNext()) 
     { 
      loan = inFile.next(); 
      interest = inFile.nextDouble(); 
      Numberofmonths = inFile.nextDouble(); 

      // calcs 

      totint = interest * loan; 

      totpay = totint + loan; 

      monthly = loan/12; 

      outFile.print("Loan Amount: " + loan); 
      outFile.print(" "); 
      outFile.println("Interest: " + totint); 
      outFile.print(" "); 
      outFile.println("Total paid: " + totpay); 
      outFile.print(" "); 
      outFile.println("Monthly payment: " + monthly); 
     } 

     inFile.close(); 
     outFile.close(); 
    } 
} 
+0

那你为什么不把'loan'改成另一个变量类型,例如双? –

+0

文件中的值看起来像是一个'double',为什么要把'loan'变成'String'? –

回答

2

loan是一个字符串,所以interest * loan没有意义。

要理解为什么将*应用于字符串没有意义,请考虑"abc" * 2"def" * "ghi"意味着什么。 (绝对没有,这就是为什么Java不允许你在string对象上执行这些操作的原因)。

可以+应用于字符串,但它不会做添加,它会连接。

相同的逻辑适用于/运营商。

品牌loan a double

相关问题