Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/util/data/MathUtil.java @ 948:c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 23 May 2016 15:49:30 +0200 |
parents | |
children |
rev | line source |
---|---|
948
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
3 * |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
7 */ |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.util.data; |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
9 |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
10 import java.math.BigDecimal; |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
11 import java.math.MathContext; |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
12 import java.math.RoundingMode; |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
13 |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
14 /** |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
15 * Utilities for calculations |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
16 * |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
17 */ |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
18 public class MathUtil { |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
19 |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
20 public static final MathContext ROUNDING_CONTEXT = new MathContext( |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
21 3, RoundingMode.HALF_EVEN); |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
22 |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
23 public static Double roundDoubleToThree(Double value) { |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
24 if (value == null) { |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
25 return null; |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
26 } |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
27 return BigDecimal.valueOf(value).round(ROUNDING_CONTEXT).doubleValue(); |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
28 } |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
29 |
c9b84bca3e3d
Round some values to three digits, breaking ties half to even, before storing.
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
30 } |