=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-07-04 15:41:57 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-07-17 19:40:31 +0000
@@ -254,7 +254,7 @@
grid.addRow();
grid.addValues( DimensionItem.getItemIdentifiers( row ) );
- grid.addValue( MathUtils.getRounded( value, 1 ) );
+ grid.addValue( MathUtils.getRounded( value ) );
}
}
}
@@ -277,7 +277,7 @@
{
grid.addRow();
grid.addValues( entry.getKey().split( DIMENSION_SEP ) );
- grid.addValue( entry.getValue() );
+ grid.addValue( MathUtils.getRounded( entry.getValue() ) );
}
}
@@ -343,7 +343,7 @@
grid.addRow();
grid.addValues( dataRow.toArray() );
- grid.addValue( MathUtils.getRounded( value, 1 ) );
+ grid.addValue( MathUtils.getRounded( value ) );
}
}
}
@@ -360,7 +360,7 @@
{
grid.addRow();
grid.addValues( entry.getKey().split( DIMENSION_SEP ) );
- grid.addValue( entry.getValue() );
+ grid.addValue( MathUtils.getRounded( entry.getValue() ) );
}
}
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java 2013-07-15 18:17:40 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java 2013-07-17 19:40:31 +0000
@@ -147,10 +147,33 @@
return Math.round( value * factor ) / factor;
}
+
+ /**
+ * Return a rounded off number.
+ *
+ *
+ * - If value is exclusively between 1 and -1 it will have 2 decimals.
+ * - If value if greater or equal to 1 the value will have 1 decimal.
+ *
+ *
+ * @param value the value to round off.
+ * @return a rounded off number.
+ */
+ public static double getRounded( double value )
+ {
+ if ( value < 1d && value > -1d )
+ {
+ return getRounded( value, 2 );
+ }
+ else
+ {
+ return getRounded( value, 1 );
+ }
+ }
/**
- * Returns a string representation of number rounded to given number
- * of significant figures
+ * Returns a string representation of number rounded to given number of
+ * significant figures
*
* @param value
* @param significantFigures
@@ -158,8 +181,8 @@
*/
public static String roundToString( double value, int significantFigures )
{
- MathContext mc = new MathContext(significantFigures);
- BigDecimal num = new BigDecimal(value);
+ MathContext mc = new MathContext( significantFigures );
+ BigDecimal num = new BigDecimal( value );
return num.round( mc ).toPlainString();
}
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java'
--- dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java 2013-07-15 18:17:40 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java 2013-07-17 19:40:31 +0000
@@ -241,4 +241,16 @@
{
assertEquals( 7.5, MathUtils.getAverage( Arrays.asList( 5.0, 5.0, 10.0, 10.0 ) ), 0.01 );
}
+
+ @Test
+ public void testGetRounded()
+ {
+ assertEquals( 10, MathUtils.getRounded( 10.00 ), 0.01 );
+ assertEquals( 10, MathUtils.getRounded( 10 ), 0.01 );
+ assertEquals( 0.53, MathUtils.getRounded( 0.5281 ), 0.01 );
+ assertEquals( 0.5, MathUtils.getRounded( 0.5 ), 0.01 );
+ assertEquals( 0, MathUtils.getRounded( 0 ), 0.01 );
+ assertEquals( -0.43, MathUtils.getRounded( -0.43123 ), 0.01 );
+ assertEquals( -10, MathUtils.getRounded( -10.00 ), 0.01 );
+ }
}