如何解决Java将乘法应用于数组中的每个项目
| 好了,因此,我正在尝试创建一个“销售税程序”,用户可以在其中输入商品并将其添加到名为“ costArray”的数组中。我几乎几乎不知道该怎么做,带一个字符串(因为我需要循环使用costArray.length),但是我有点迷失。任何人都可以帮我指出正确的方向,这样我可以:取一个数字数组(双精度数)并对其应用乘数(营业税百分比为0.08)并输出总数(两倍)吗?这是我到目前为止的结果,您能告诉我我是否接近吗?谢谢!: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;
}
// /**
// * Mutator method to calculate tax on each item
// */
// public void calculateTax(){
// for(int index=0; index < costArray.length; index++){
// System.out.println(0.08 * costArray[index]);
// }
// }
}
解决方法
数字ist存储在字符串中,您必须将其“转换”为实数(双精度值)
这样做的方式如下所示:
String s = \"-1.234\";
double value = Double.parseDouble(s);
,在Java 8中:
import java.util.stream.DoubleStream;
double taxCoef = 0.08;
double[] prices = {10,20,30};
double total = DoubleStream.of(prices).map(p->p*(1+taxCoef)).sum();
System.out.println(total);
输出:64.80000000000001
(或者,可以先累加再乘)
,如果您不知道数组的大小,数组是个坏主意。为什么不使用ArrayList?如果您不正确,那就知道:您真的会经常需要它!
循环内的索引名可以使用\'i \',\'n \',\'p,q,r \'或\'x \',并且它们仅存在于自己的循环中,因此您可以定义第二个循环中有一个新的'i \'-不需要indexa,indexb等。
对于学习而言,双精度可能就足够了,但是在现实世界中,您不应该对Money数量使用双精度,而应该使用BigDecimal。分数的位表示还会导致令人惊讶的效果。
而且Scanner已经有诸如reader.nextDouble()之类的方法来读取Number。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。