We're updating the issue view to help you get more done. 

XMLDatatypeUtil.normalizeFPNumber should automatically convert large float mantissa values

Description

Currently, Sesame float validation checks that an input float is legal by normalizing it. This normalization checks that the input mantissa is not higher than the max mantissa.

However, this does not take into account that by definition, xsd:float's lexical space is equal to that of xsd:double. Thus, "15000000000"^^xsd:float is legal, even if the number 1500000000 is higher than the max mantissa for a float (16777215).

The solution would be to convert internally, using a higher exponent, optionally losing precision according to definitions in https://en.wikipedia.org/wiki/Single_precision_floating-point_format.

Or perhaps by just converting to a float value in Java and seeing what happens

Environment

None

Status

Assignee

JeenB

Reporter

JeenB

Labels

None

Components

Fix versions

Affects versions

2.7.5

Priority

Minor