【发布时间】:2020-05-21 23:32:16
【问题描述】:
import java.lang.String;
import java.lang.System;
import java.text.DecimalFormat;
import java.io.IOException;
import java.util.Scanner;
public class StorePrice
{
public static void main (String args[]) throws IOException
{
int taxRate, markupRate, price;
Scanner prompt = new Scanner(System.in);
DecimalFormat decimal = new DecimalFormat("#,##0.00");
System.out.print("Input the original price: ");
price = prompt.nextInt();
System.out.print("Input the markup rate: ");
markupRate = prompt.nextInt();
System.out.print("Input the tax rate: ");
taxRate = prompt.nextInt();
markupRate = decimal.format(markupRate);
taxRate = decimal.format(taxRate);
System.out.print("Original price: " + price + "\n");
System.out.print("Markup rate: " + markupRate + "\n");
System.out.print("Selling price: " + (price + (price*markupRate)) + "\n");
System.out.print("Tax rate: " + taxRate + "\n");
System.out.print("Tax: " + (price*taxRate) + "\n");
System.out.print("Final price: " + ((price*markupRate) + (price*taxRate)) + "\n");
}
}
您好,我是 OOP 和 Java 本身的新手,我在通过 nextInt(); 输入数据类型时遇到问题。错误是这样的:
C:\Stuffs\Codes\Java\StorePrice.java:25: error: incompatible types
markupRate = decimal.format(markupRate);
^
required: int
found: String
C:\Stuffs\Codes\Java\StorePrice.java:26: error: incompatible types
taxRate = decimal.format(taxRate);
^
required: int
found: String
2 errors
为什么输入为整数后仍然是字符串?问题出在哪里?
编辑:我忘了补充一点,我被严格指示在代码中将 price、markupRate 和 taxRate 声明为整数。
【问题讨论】:
-
markupRate和taxRate被声明为int的类型,但是您尝试将Strings 分配给它们,这没有意义。您可能需要单独的变量来存储Strings 的格式化结果 -
对不起,但我忘了告诉我,我必须严格按照我的指示将它们初始化为整数。
-
可以,所以使用不同的变量来存储格式化结果
标签: java string input integer decimalformat