【发布时间】:2018-09-26 17:05:35
【问题描述】:
考虑以下类:
public class Money {
private double amount;
public Money(double amount) {
super();
this.amount = amount;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public Money multiplyBy( int factor) {
this.amount *= factor;
return this;
}
}
我可以采取哪些预防措施来确保此类在多线程方面没有任何问题。有良好的表现。同时确保货币精度不会成为问题
【问题讨论】:
-
您正在使用
double作为金额值。你总是会遇到金钱精度问题。见Why not use Double or Float to represent currency? -
在并发编程中使用不可变的 pojo 通常会更好。
标签: java multithreading precision currency money-format