diff --git a/core/src/site/resources/tags/number.html b/core/src/site/resources/tags/number.html
index eabc6fa..744a72f 100644
--- a/core/src/site/resources/tags/number.html
+++ b/core/src/site/resources/tags/number.html
@@ -103,7 +103,7 @@
 					<td align="left" valign="top"></td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The rounding mode to use - not implemented yet as this required Java 1.6</td>
+					<td align="left" valign="top">The rounding mode to use, possible values: ceiling, down, floor, half-down, half-even, half-up, unnecessary, up</td>
 				</tr>
 				<tr>
 					<td align="left" valign="top">type</td>
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/NumberTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/NumberTagTest.java
index 525e54a..f215cf2 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/NumberTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/NumberTagTest.java
@@ -3,6 +3,7 @@
 import com.opensymphony.xwork2.ActionContext;
 import org.apache.struts2.TestAction;
 
+import java.math.RoundingMode;
 import java.text.NumberFormat;
 import java.util.Locale;
 
@@ -65,10 +66,7 @@
 
         // then
         NumberFormat format = NumberFormat.getCurrencyInstance((Locale) context.get(ActionContext.LOCALE));
-        /*
-        TODO lukaszlenart: enable when switched to Java 1.6
         format.setRoundingMode(RoundingMode.CEILING);
-        */
         String expected = format.format(120.0f);
 
         assertEquals(expected, writer.toString());
@@ -84,7 +82,7 @@
         NumberTag tag = new NumberTag();
         tag.setPageContext(pageContext);
         tag.setName("floatNumber");
-        tag.setRoundingMode("ceiling");
+        tag.setRoundingMode("down");
 
         // when
         tag.doStartTag();
@@ -92,10 +90,7 @@
 
         // then
         NumberFormat format = NumberFormat.getInstance((Locale) context.get(ActionContext.LOCALE));
-        /*
-        TODO lukaszlenart: enable when switched to Java 1.6
-        format.setRoundingMode(RoundingMode.CEILING);
-        */
+        format.setRoundingMode(RoundingMode.DOWN);
         String expected = format.format(120.45f);
 
         assertEquals(expected, writer.toString());
