A single-precision decimal value should be written as a smaller FLOAT32 instead of always using FLOAT64. A simple test for single-precision can be added to ImmutableDoubleValueImpl:
public void writeTo(MessagePacker pk) throws IOException {
// ValueFactory always writes a float64; needs to be a float32 for single-precision
if (toDouble() == toFloat()) {
pk.packFloat(toFloat());
} else {
pk.packDouble(toDouble());
}
}
A single-precision decimal value should be written as a smaller FLOAT32 instead of always using FLOAT64. A simple test for single-precision can be added to
ImmutableDoubleValueImpl: