【发布时间】:2018-01-01 08:14:50
【问题描述】:
package com.operators;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.function.BinaryOperator;
public class TotalCost {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double mealCost = scan.nextDouble(); // original meal price
int tipPercent = scan.nextInt(); // tip percentage
int taxPercent = scan.nextInt(); // tax percentage
scan.close();
Map<Double,Double> map = new HashMap<>();
map.put(mealCost, (double)tipPercent);
map.put(mealCost, (double)taxPercent);
BinaryOperator<Double> opPercent = (t1,t2) -> (t1*t2)/100;
BinaryOperator<Double> opSum = (t1,t2) -> (t1+t2);
calculation(opPercent,map);
}
public static void calculation(BinaryOperator<Double> opPercent , Map<Double,Double> map) {
List<Double> biList = new ArrayList<>();
map.forEach((s1,s2)-> biList.add(opPercent.apply(s1, s2)));
}
}
- 我有以下问题,我试图在 Java 8 中使用 BinaryOperator 解决。此应用程序有三个输入 [mealCost(double)、tipPercent(int)、taxPercent(int)]。
-
我正在尝试计算以下值:
tip = (mealCost*tipPercent)/100; tax = (mealCost*taxPercent)/100; TotalCost = mealCost+tip +tax; 我无法将整数输入传递给 BinaryOperator 的应用方法。此外,biList 中的计算值也不正确。 下面是我的代码
【问题讨论】:
-
您可能还想使用
DoubleBinaryOperator,它使用原始值而不是Double包装器
标签: java addition binary-operators