Why does Drupal need list (integer, float AND text) and what is the difference?
Occasionally you want to access a dropdown with Jquery - in this case it can be useful to have keys which are more than just integers. 

Nothing I ever did, but you could use a dropdown to apply different classes to an element:

style-red|Red Layout
style-blue|Blue Layout


The value is the human readable label and the key is the class to switch around with jQuery. If you had used '1|Red Layout' and '2|Blue Layout' you need to tell JQuery that is has to translate key 1 into class style-red and key 2 into style-blue before applying them. So whenever you would add a new key|value pair you would not only need to edit your css but also your jQuery code, while using text keys you only need to edit the css file.

It is not a real world example, but you get the point. 

For the float it is similar. Imagine you have a list with prices each with a human readable label plus a float you can instantly use for calculation in jQuery.