超初心者な質問ですが、

int a;
cout << "aを入力してください。\n";
cin >> a;

cout << "8進数:";
cout.setf(ios::oct, ios::basefield);
cout << a << '\n';

cout << "10進数:";
cout.setf(ios::dec, ios::basefield);
cout << a << '\n';

cout << "16進数:";
cout.setf(ios::hex, ios::basefield);
cout << a << " または ";
cout.setf(ios::uppercase);
cout << a << '\n';

intをdoubleに変えるとうまくいきません。
なんで?