Bonjour à tous et à toutes !

J'ai développé un programme qui utilise que des entiers ou des flottants (pas de double), lors de la conversion d'un flottant vers un entier, j'ai un résultat inattendu et je souhaiterai si possible avoir une explication...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main(int argc, char** argv) {
    float t = 0.45;
    cout << "t = " << static_cast<int>(t*100) << endl;
    return 0;
}
Quand ce code est exécuté il me retourne "44", savez-vous pourquoi ?
Merci d'avance,
Nicolas.