3 ms·
Neither binary nor decimal floating point types exist in the JSON spec. The JSON spec does not give an explicit internal representation for floating points, imp
by planede 4y ago
Neither binary nor decimal floating point types exist in the JSON spec. The JSON spec does not give an explicit internal representation for floating points, implementations are free to use decimal types internally, if they wish to do so. The JSON spec merely specifies what a "number" is at the grammar level.
Having said that most implementations don't use decimal floating points to represent these.
- jjgreen 4y agoIt is a scandal that JSON does not support the BigInt type.
- throwawaymaths 4y agoIt does. Just string encode it.
- jjgreen 4y ago1 == "1"; // true 1n == "1"; // true 1n == "1n"; // false
- throwawaymaths 4y agoYou have to describe what your encoding is in the "format" field of your JSONschema and implement the correct semantic meaning.
- awwright 4y agoIt does. In fact, not only does JSON support big ints, but it supports arbitrary-precision base-10 decimal numbers. Whether your JSON parser will preserve the precision correctly is another story. For JavaScript/ECMAScript, you'll need to use a library.
- throwawaymaths 4y agoThat is correct, but JSONschema does and there is an implicit behavioural difference introduced by the existence of the MultipleOf filter when you're dealing with floats versus integers that can't simply be elided away or excused by the lack of a distinction in the underlying type system. The point is JSONschema could take a stand and say for example, "this filter will always fail when the operand is not the number representation of an exact integer".