8
Tim's answer is of course correct.
A possible workaround would be to store your float values in a 2D texture and pass the texture coordinates (and the number of values) to the shader. However, this can become really slow if you have large numbers of float values per vertex (because of all the texture lookups per fragment). Another problem is that this results in very large textures if you have a lot of vertices.
Anyway, in some cases this approach can be useful.