ER-048 Use BigDecimal instead of Float or Double for monetary values

Severity1
Enabledyes
Waivableyes
Violation
private static final float SPEC_PRICE = 43.9F;
private static final double PRICE = 100.5D;
public float getSpecPrice(final float weight) {
	return weight * SPEC_PRICE;
}
public double getPrice(final double weight) {
	return weight * PRICE;
}
Fix
private static final BigDecimal SPEC_PRICE = new BigDecimal(43.9F);
private static final BigDecimal PRICE = new BigDecimal(100.5D);
public BigDecimal getSpecPrice(final BigDecimal weight) {
	return weight.multiply(SPEC_PRICE);
}
public BigDecimal getPrice(final BigDecimal weight) {
	return weight.multiply(PRICE);
}


Hammurapi 3 Copyright © 2004 Hammurapi Group. All Rights Reserved.