Come gestisci il seguente scenario senza null?
Hai questo problema (in Java):
BigDecimal sales = ...;
BigDecimal cost = ...;
BigDecimal profit = sales.subtract(cost);
// Profit Margin = profit / sales
BigDecimal profitMargin = profit.divide(sales, 20, RoundingMode.HALF_UP);
Poiché sales
a volte è zero, trasformiamo l'ultima riga in:
BigDecimal profitMargin = sales.compareTo(BigDecimal.ZERO) == 0 ? null : profit.divide(sales, 20, RoundingMode.HALF_UP);
In questo caso se profitMargin == null
, allora sappiamo cosa significa. Se rendi profitMargin
= 0, questo non è proprio corretto, né è infinity
un buon valore. Sembra meglio che rimanga indefinito . Eppure, è una "bomba inesplosa". Quindi, qual è il modo migliore per gestirlo?
Queste domande come originariamente poste su Stack Overflow, e mi hanno anche indirizzato alla domanda I riferimenti null sono davvero una brutta cosa?