Hey all when I use the following code, and enter 300.34 it returns 30033, but that is the only value it returns one less for..... I don't understand why?

Code:
#include <iostream>


using namespace std;


int main() {
	
	double d, temp;
	int i;
	cout << "Enter a number: ";
	cin >> d;
	i=static_cast<int>(d*100);
	cout << "New Number: " << i;

	return 0;

}

Thanks!