所以我的程序在实例化时询问用户他们想要多少“项目”。然后我的程序创建了两个数组,一个用于“项目名称”,另一个用于“项目价格”。我使用循环让用户在各自的数组中输入每个项目名称和项目价格,但是我丢失了物品价格数组。要使用我的循环,我需要使用“itemprice.length”元素,但是当我不使用字符串时我不能这样做。
用户输入每个项目的“价格”后,我需要对每个数组项应用一个乘数并输出。所以我想,例如,阵列中有3个项目:1.20,1.30,1.40,然后我希望程序向我询问“销售税”,我可以输入0.08,然后它将乘以0.08到每个项目和输出总计。
有没有办法可以让我的程序工作,这样它就可以让用户输入5个项目及其价格,我会以正确的方式进行操作吗?任何方式这样做更容易?谢谢!
public class Input
{
private Scanner keybd;
private String item;
private double cost;
private String[] costArray;
private String[] itemArray;
/**
* Constructor for objects of class Scanner
*/
public Input(int anyAmountofItems)
{
keybd = new Scanner(System.in);
costArray = new String[anyAmountofItems];
itemArray = new String[anyAmountofItems];
}
/**
* Mutator method to set the item names and costs
*/
public void setArray(){
for(int index=0; index < itemArray.length; index++){
System.out.println("Enter the item name: ");
itemArray[index] = keybd.next();}
for(int indexa=0; indexa < itemArray.length; indexa++){
System.out.println(itemArray[indexa]);
}
for(int indexb=0; indexb < costArray.length; indexb++){
System.out.println("Enter the item cost: ");
costArray[indexb] = keybd.next();}
for(int indexc=0; indexc < costArray.length; indexc++){
System.out.println(costArray[indexc]);
}
}
/**
* Accessor method to return the items cost with tax
*/
public double getTax(){
return costArray.length;
}
答案 0 :(得分:1)
使用Float[]
并使用Float.parseFloat(String str)
将字符串转换为浮点数。
顺便说一句,在处理金钱时,浮点数是一个坏主意,因为总是存在精确问题。最好使用具有适当最低货币单位(即美国美分等)的整数/多头。
答案 1 :(得分:0)
我不清楚你的问题是什么。您是否遇到物料成本数据问题?你只是在读一个字符串。你应该阅读一系列双打。
costArray = new double[anyAmountOfItems];
// Then when reading use the appropriate Scanner method
costArray[indexb] = keybd.nextDouble();
几种风格的笔记:
更好的是,在您不需要索引的情况下使用增强型for循环:
for(String item:itemArray){ 的System.out.println(项目); }
答案 2 :(得分:0)
你可以尝试:
System.out.println("Enter the sales tax: ");
double salesTax = keybd.next();
double totalTax =0.0;
double total = 0.0;
for(int indexc=0; indexc < costArray.length; indexc++){
System.out.println("Enter the item cost: ");
double cost = Double.valueOf(keybd.next()).doubleValue();
totalTax = totalTax + (cost * salesTax);
total = total + cost;
}
System.out.println("Total: " + (total-totalTax));
编辑:计算插入费用期间的总数。