如何使用java BigDecimal类型表示货币值

时间:2018-02-21 12:14:15

标签: java bigdecimal

public class Product {
    private DoubleProperty unitPrice;  

    public Product() {
        this.unitPrice = new SimpleDoubleProperty();
    }

        public double getUnitPrice() {
        return unitPrice.get();
    }

    public DoubleProperty unitPriceProperty() {
        return unitPrice;
    }

    public void setUnitPrice(double unitPrice) {
        this.unitPrice.set(unitPrice);
    }

    public void setUnitPrice(float unitPrice) {
        this.unitPrice.set(unitPrice);
    }
}

我想将BigDecimal类型用于模型类。我应该替换哪些线路?我应该如何更改BigDecimal项的构造函数?

1 个答案:

答案 0 :(得分:1)

class func isValidEmail(testStr:String) -> Bool {

        let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

        let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        return emailTest.evaluate(with: testStr)
    }

以上或多或少对应于双版本。永远不要使用带有float或double的BigDecimal构造函数作为参数,因为那些是不精确的不精确数字; public class Product { private ObjectProperty<BigDecimal> unitPrice; public Product() { this.unitPrice = new SimpleObjectProperty<BigDecimal>(); } public BigDecimal getUnitPrice() { return unitPrice.get(); } public ObjectProperty<BigDecimal>unitPriceProperty() { return unitPrice; } public void setUnitPrice(String unitPrice) { this.unitPrice.set(new BigDecimal(unitPrice)); } public void setUnitPrice(BigDecimal unitPrice) { this.unitPrice.set(unitPrice); } } 的比例(精度)为2.