If the sum() or avg() functions encounter an xs:float NaN value, the function will return xs:float NaN, even though the correct result may be an xs:double NaN. For example, the result of the expression
avg((xs:float('NaN'), 2, 3, 4, 2.0e0)) instance of xs:double
should be true, but it is currently false.
Will be patched in Subversion.