Implement JsonProvider#createValue(Number)
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
index 31dd7e1..fce0fac 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -180,8 +180,13 @@
     }
 
     @Override
+    public JsonNumber createValue(Number number) {
+        return createValue(new BigDecimal(number.toString()));
+    }
+
+    @Override
     public JsonNumber createValue(final BigInteger value) {
-        return new JsonNumberImpl(new BigDecimal(value.toString()), this::checkBigDecimalScale);
+        return createValue((Number) value);
     }
 
     @Override
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java
index 412df42..ea78422 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java
@@ -83,4 +83,14 @@
 
         Assert.assertEquals(bi, val.bigIntegerValue());
     }
+
+    @Test
+    public void testJsonCreateValueNumber() {
+        Number someNumber = 42;
+        JsonNumber val = Json.createValue(someNumber);
+
+        Assert.assertNotNull(val);
+        Assert.assertEquals(JsonValue.ValueType.NUMBER, val.getValueType());
+        Assert.assertEquals(someNumber, val.intValue());
+    }
 }