Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java @ 9382:8ae7137b67d7
Fixed: avoiding NaN exception in BigDecimal rounding
author | mschaefer |
---|---|
date | Tue, 07 Aug 2018 14:06:49 +0200 |
parents | a0a2e68a1e11 |
children | 439699ff9b2d |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java Tue Aug 07 12:43:53 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java Tue Aug 07 14:06:49 2018 +0200 @@ -183,6 +183,8 @@ * Calculates the salix value */ private double calcSalix(final double mhw, final double mw) { + if (Double.isNaN(mw) || Double.isInfinite(mw) || Double.isNaN(mhw) || Double.isInfinite(mhw)) + return mw; // preserving NaN or Infinity return Formatter.roundW(mhw).subtract(SALIX_DISTANCE).subtract(Formatter.roundW(mw)).doubleValue(); } @@ -190,6 +192,8 @@ * Calculates the inverse MW-MNW difference */ private double calcMwmnw(final double mw, final double mnw) { + if (Double.isNaN(mw) || Double.isInfinite(mw) || Double.isNaN(mnw) || Double.isInfinite(mnw)) + return mnw - mw; // preserving NaN or Inifinity return Formatter.roundW(mnw).subtract(Formatter.roundW(mw)).doubleValue(); }