Piszę program zamieniający minuty na stopnie oraz sekundy na stopnie. Chce to zrobić przez rzutowanie, ale kompilator wynik pokazuje jako typ całkowitoliczbowy. Jeśli natomiast zmienię int na double/float wszystko działa poprawnie.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double stopnie = 0, minuty = 0, sekundy = 0;
int liczba_minut_na_stopnie = 0, liczba_sekund_na_stopnie = 0, ostateczna_liczba_stopni = 0;
cout << "Podaj dlugosc w stopniach, minutach i sekundach: " << endl;
cout << "Najpierw podaj stopnie ";
cin >> stopnie;
cout << "Nastepnie podaj minuty stopnia luku: ";
cin >> minuty;
cout << "Na koniec podaj sekundy luku: ";
cin >> sekundy;
liczba_minut_na_stopnie = (minuty / 60);
liczba_sekund_na_stopnie = (sekundy / 3600);
static_cast<double> (liczba_minut_na_stopnie);
static_cast<double> (liczba_sekund_na_stopnie);
ostateczna_liczba_stopni = stopnie + liczba_minut_na_stopnie + liczba_sekund_na_stopnie;
static_cast<double> (ostateczna_liczba_stopni);
cout << fixed;
cout << setprecision(4) << ostateczna_liczba_stopni << " stopni";
return 0;
}