这是我的第一个Java应用程序。我试图创建一个产品(键)和它们的价格(值)映射表。文档说我不能使用double类型表示金额,因此我必须使用BigDecimal类。目前我完全被卡住了,不知道如何在我的方法和映射表中使用BigDecimal。
我只有一个将产品添加到映射表中的方法,并且我正在尝试传递一个BigDecimal类型的价格。但无法编译,因为它看到的是一个字符串而不是BigDecimal类型的参数,这让我感到困惑,因为BigDecimal接受字符串作为参数(例如,BigDecimal example = new BigDecimal("2.50"))。
我还想创建一个方法,将价格添加到总价中,但是你不能使用字符串进行计算。BigDecimal的文档非常令人困惑,Google也没有太大帮助。请问能否有人解释一下BigDecimal以及如何使用它?
这是我目前的代码:
Register类:
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
public class Register {
private HashMap<String, BigDecimal> productMap = new HashMap<>();
public void printProductMap() {
for(Map.Entry<String, BigDecimal> entry : productMap.entrySet()) {
String key = entry.getKey();
BigDecimal value = entry.getValue();
System.out.println(key + " " + value);
}
}
public HashMap<String, BigDecimal> addProduct(String product, BigDecimal price) {
BigDecimal productPrice = new BigDecimal(price);
productMap.put(product, productPrice);
return productMap;
}
}
主类:
public class Main {
public static void main(String[] args) {
Register register = new Register();
register.addProduct("Coffee", "1.25");
register.addProduct("Cappuccino", "1.50");
register.printProductMap();
}
}