В спецификации написано, что:
If an object can be represented in multiple possible output formats, serializers SHOULD use the format which represents the data in the smallest number of bytes.
Относится ли это к семейству типов float? Я видел реализации на C++, где double записывается как double, а float - как float, вне зависимости от значения числа.