diff --git a/src/main/java/org/json/JSONArray.java b/src/main/java/org/json/JSONArray.java index 2a8a1d209..342b91e99 100644 --- a/src/main/java/org/json/JSONArray.java +++ b/src/main/java/org/json/JSONArray.java @@ -326,7 +326,7 @@ public double getDouble(int index) throws JSONException { public float getFloat(int index) throws JSONException { final Object object = this.get(index); if(object instanceof Number) { - return ((Float)object).floatValue(); + return ((Number)object).floatValue(); } try { return Float.parseFloat(object.toString()); diff --git a/src/test/java/org/json/junit/JSONArrayTest.java b/src/test/java/org/json/junit/JSONArrayTest.java index 1c042516f..d0980ef61 100644 --- a/src/test/java/org/json/junit/JSONArrayTest.java +++ b/src/test/java/org/json/junit/JSONArrayTest.java @@ -364,6 +364,8 @@ public void getArrayValues() { new Double(23.45e-4).equals(jsonArray.getDouble(5))); assertTrue("Array string double", new Double(23.45).equals(jsonArray.getDouble(6))); + assertTrue("Array double can be float", + new Float(23.45e-4f).equals(jsonArray.getFloat(5))); // ints assertTrue("Array value int", new Integer(42).equals(jsonArray.getInt(7)));