alternatively NaN / Infinity could also be allowed, since they are technically valid float / double values