Como verificar se o número inteiro de entrada não flutua?

Quero verificar se a entrada é válida, mas quando executo esse código, vejo que ele verifica apenas a entrada de caracteres. Se eu inserir um número flutuante, ele será usado como um número inteiro sem parte fracionária.

#inclide <iostream>
using namespace std;
...
int n;
cout << "Your input is: "<<endl;
cin >> n;
while (cin.fail()) {
    cout << "Error. Number of elements must be integer. Try again: " << endl;
    cin.clear();
    cin.ignore(256, '\n');  
    cin >> n;
}
...        
      `

Então, como fazer esse código ver se a entrada é flutuante?

questionAnswers(3)

yourAnswerToTheQuestion