diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java @ 9375:a0a2e68a1e11

Fixed: cm rounding in S-Info flow depth/tkh and U-Info salix via BigDecimal, half_even mode
author mschaefer
date Fri, 03 Aug 2018 17:00:45 +0200
parents 6f7e92c16050
children 8ae7137b67d7
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java	Thu Aug 02 20:14:26 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculator.java	Fri Aug 03 17:00:45 2018 +0200
@@ -9,6 +9,7 @@
  */
 package org.dive4elements.river.artifacts.uinfo.salix;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -42,6 +43,7 @@
  */
 final class SalixLineCalculator {
 
+    private static final BigDecimal SALIX_DISTANCE = new BigDecimal("2.31");
     private final List<ResultRow> rows = new ArrayList<>();
 
     private final RiverInfoProvider riverInfoProvider;
@@ -181,14 +183,14 @@
      * Calculates the salix value
      */
     private double calcSalix(final double mhw, final double mw) {
-        return Formatter.roundW(mhw) - 2.31 - Formatter.roundW(mw);
+        return Formatter.roundW(mhw).subtract(SALIX_DISTANCE).subtract(Formatter.roundW(mw)).doubleValue();
     }
 
     /**
      * Calculates the inverse MW-MNW difference
      */
     private double calcMwmnw(final double mw, final double mnw) {
-        return Formatter.roundW(mnw) - Formatter.roundW(mw);
+        return Formatter.roundW(mnw).subtract(Formatter.roundW(mw)).doubleValue();
     }
 
     /**

http://dive4elements.wald.intevation.org