Skip to content

Commit c5e099d

Browse files
committed
roundingMode extracted to static variable, implemented recommended changes
1 parent ed1978f commit c5e099d

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

src/main/java/com/scriptbasic/utility/functions/MathFunctions.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
@SuppressWarnings({"SameReturnValue", "UnusedReturnValue"})
2626
public class MathFunctions {
2727

28+
/**
29+
* Rounding mode used by round function
30+
*/
31+
static public RoundingMode roundingMode = RoundingMode.HALF_EVEN;
32+
2833
private MathFunctions() {
2934
NoInstance.isPossible();
3035
}
@@ -232,17 +237,15 @@ public static double rint(final double a) {
232237
* @return rounded value
233238
*/
234239
@BasicFunction(classification = com.scriptbasic.classification.Math.class)
235-
static public Object round(final double value, Integer numdecimalplaces) {
240+
static public Number round(final double value, Integer numdecimalplaces) {
236241

237-
BigDecimal bd = BigDecimal.valueOf(value);
238-
239-
if(numdecimalplaces==null||numdecimalplaces==0) {
240-
BigDecimal result = bd.setScale(0, RoundingMode.HALF_EVEN);
241-
return result.intValue();
242+
final BigDecimal bd = BigDecimal.valueOf(value);
243+
244+
if (numdecimalplaces == null || numdecimalplaces == 0) {
245+
return bd.setScale(0, roundingMode).intValue();
242246
} else {
243-
MathContext mc = new MathContext(numdecimalplaces, RoundingMode.HALF_EVEN);
244-
BigDecimal result = bd.round(mc);
245-
return result.doubleValue();
247+
final MathContext mc = new MathContext(numdecimalplaces, roundingMode);
248+
return bd.round(mc).doubleValue();
246249
}
247250
}
248251

0 commit comments

Comments
 (0)