I assume `lit->floatval()` returns the right thing even if the literal is an integer?