mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Fixed double number JSON serialization to encode 17 significant digits (this
matches the max number of significant digits in the double-precision floating point format). This prevents a loss of precision, in case the number has more than 3 digits after the decimal point. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37556 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
1050967fe5
commit
16fc05ced5
3 changed files with 13 additions and 2 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2014-01-07 Quentin Mathe <quentin.mathe@gmail.com>
|
||||
|
||||
* Source/NSJSONSerialization.m (writeObject()): Fixed double number
|
||||
serialization to encode 17 significant digits (this matches the max number
|
||||
of significant digits in the double-precision floating point format). This
|
||||
prevents a loss of precision, in case the number has more than 3 digits
|
||||
after the decimal point.
|
||||
* Tests/base/NSJSONSerialization/json.m: Updated to test double number
|
||||
serialization.
|
||||
|
||||
2014-01-07 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSOperation.m: Make sure current queue is set for threads
|
||||
|
|
|
@ -901,7 +901,7 @@ writeObject(id obj, NSMutableString *output, NSInteger tabs)
|
|||
}
|
||||
else
|
||||
{
|
||||
[output appendFormat: @"%g", [(NSNumber*)obj doubleValue]];
|
||||
[output appendFormat: @"%.17g", [(NSNumber*)obj doubleValue]];
|
||||
}
|
||||
}
|
||||
else if ([obj isKindOfClass: NSNullClass])
|
||||
|
|
|
@ -21,6 +21,7 @@ int main(void)
|
|||
\"emptyString\":\"\",\"emptyArray\":[],\"emptyObject\":{},\
|
||||
\"IDs\": [116, 943, 234, 38793],\
|
||||
\"escapeTest\": \"\\\"\\u0001\"\
|
||||
\"double\": 123.456789012254,\
|
||||
}";
|
||||
NSStringEncoding encs[] = {\
|
||||
NSUTF8StringEncoding,\
|
||||
|
@ -48,7 +49,7 @@ int main(void)
|
|||
obj = tmp;
|
||||
}
|
||||
|
||||
PASS([obj count] == 6,
|
||||
PASS([obj count] == 7,
|
||||
"Decoded dictionary had the right number of elements");
|
||||
PASS([NSJSONSerialization isValidJSONObject: obj],
|
||||
"Can serialise deserialised JSON");
|
||||
|
|
Loading…
Reference in a new issue