【发布时间】:2019-09-09 02:23:31
【问题描述】:
我应该将一个文本文件读入 java 程序,在 java 文件中添加货币金额,然后确定如何支付每个总金额(读取 $20、$10、$5...)。我在如何处理分隔文本文件的每一行以进行单独计算时遇到了麻烦。
这是我要导入的文本文件:
Class1 9.30 7.44 5.32 3.33
Class2 2.22
Class3 7.33 4.44 3.56
Class4 15.67 12.02 10.33 8.87
Class5 4.44 3.33 2.22 1.11
我不仅应该为每个值展示解决方案,还应该为每个类展示解决方案。我假设需要某种 for 循环,但我无法弄清楚。
public static void main(String[] args) throws FileNotFoundException, IOException {
FileReader file = new FileReader("C:\\Users\\idhit\\Desktop\\amounts.txt");
BufferedReader bf = new BufferedReader(file);
String st = bf.readLine();
double sum = 0;
double c1total = 0;
double c2total = 0;
double c3total = 0;
double c4total = 0;
double c5total = 0;
while ((st = bf.readLine()) != null) {
StringTokenizer stn = new StringTokenizer(st);
String rn = stn.nextToken();
String name = stn.nextToken();
double c1 = Double.parseDouble(stn.nextToken());
double c2 = Double.parseDouble(stn.nextToken());
double c3 = Double.parseDouble(stn.nextToken());
double c4 = Double.parseDouble(stn.nextToken());
double c5 = Double.parseDouble(stn.nextToken());
}
double value = scan.nextDouble();
int valueIntegral = (int) value;
int valueFractional = (int) Math.round(100 * value - 100 * valueIntegral);
// Integral values
int hundred = valueIntegral / 100;
int fifty = (valueIntegral % 100) / 50;
int twenty = ((valueIntegral % 100) % 50) / 20;
int ten = (((valueIntegral % 100) % 50) % 20) / 10;
int five = ((((valueIntegral % 100) % 50) % 20) % 10) / 5;
int one = (((((valueIntegral % 100) % 50) % 20) % 10) % 5) / 1;
// Fractional values
int quarter = valueFractional / 25;
int dime = (valueFractional % 25) / 10;
int nickel = ((valueFractional % 25) % 10) / 5;
int penny = (((valueFractional % 25) % 10) % 5) / 1;
System.out.println(hundred + " hundred dollar bills\n" + fifty + " fifty dollar bills\n" + twenty
+ " twenty dollar bills\n" + ten + " ten dollar bills\n" + five + " five dollar bills\n" + one
+ " one dollar bills\n" + quarter + " quarters\n" + dime + " dimes\n" + nickel + " nickels\n" + penny
+ " pennies");
}
【问题讨论】:
-
我回答你的问题了吗?
-
请注意,您对
valueFractional的计算可能会出现浮点错误,并且有时会给出一个太小的结果。 -
请检查更新答案。
-
是的,我认为这可行。只是遇到了“非法的表达开始”。感谢您的帮助!
标签: java bufferedreader filereader