Por que a função std :: acumulate mostra a soma incorreta de um vetor <double>?

Considere o código a seguir para adicionar todos os elementos de umvector:

#include<iostream>
#include<algorithm>
#include<numeric>
#include<vector>
using namespace std;
int main(void)
{

   std::vector<double> V;
   V.push_back(1.2);
   V.push_back(3.6);
   V.push_back(5.6);
   double sum = accumulate(V.begin(),V.end(),0);

   cout << "The sum of the elements of the vector V is " << sum << endl;
   return 0;
}

Quando eu compilo isso no Cygwin no Windows e o executo, recebo a saída no terminal como

A soma dos elementos do vetor V é 9

oaccumulate&nbsp;A função parece arredondar todos os números e adicioná-los, o que explicaria a resposta.

Isso está errado com o compilador Cygwin g ++ ou com minha interpretação incorreta doaccumulate&nbsp;função para adicionar umvector&nbsp;dodoubles?