Что я должен использовать: double или float?

Каковы преимущества и недостатки использования одного вместо другого в C ++?