Dokładnie tak, z tym, że w/w sposób to jest zaokrąglanie, więc można też tak:
int i = round (100 * d);
lub w tym zadaniu:
char znak; //przecinek
int zlote, grosze;
cin >> zlote >> znak >> grosze;
Zaleta, używamy zmiennych całkowitych, zamiast rzeczywistrych, ale ten sposób nie zadziała dla np takich danych:
4,5 - będzie wczytane 4 złote i 5 groszy, zamiast 50.
4, w/w program wywali się
4 w/w program wywali się