Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 816efb8

Browse files
authored
Merge pull request #219 from dyf6372/fix_long_cast
using Long.valueOf instead of casting double to long
2 parents 42e8df1 + df6f71c commit 816efb8

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

‎src/main/java/com/jsoniter/JsonIterator.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,13 +292,14 @@ public final Object read() throws IOException {
292292
return readString();
293293
case NUMBER:
294294
IterImplForStreaming.numberChars numberChars = IterImplForStreaming.readNumber(this);
295-
Double number = Double.valueOf(new String(numberChars.chars, 0, numberChars.charsLength));
295+
String numberStr = new String(numberChars.chars, 0, numberChars.charsLength);
296+
Double number = Double.valueOf(numberStr);
296297
if (numberChars.dotFound) {
297298
return number;
298299
}
299300
double doubleNumber = number;
300301
if (doubleNumber == Math.floor(doubleNumber) && !Double.isInfinite(doubleNumber)) {
301-
long longNumber = (long) doubleNumber;
302+
long longNumber = Long.valueOf(numberStr);
302303
if (longNumber <= Integer.MAX_VALUE && longNumber >= Integer.MIN_VALUE) {
303304
return (int) longNumber;
304305
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /