From 75894086e59d3b6ec23e35825c468fde5618366b Mon Sep 17 00:00:00 2001 From: Ian Lovejoy Date: Tue, 27 Apr 2021 19:03:35 -0700 Subject: [PATCH] Fixed incorrect cast getting float from array Added test for getting float from array --- src/main/java/org/json/JSONArray.java | 2 +- src/test/java/org/json/junit/JSONArrayTest.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) 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)));