Witam, mam problem z poniższym kawałkiem kodu. Mianowicie przy niektórych wartościach np. 1.2 program zwraca o 1 sekundę za mało. Podejrzewam,że chodzi tu o coś z konwersją double na inta. Byłbym wdzięczny za wyjaśnienie problemu.
#include <iostream>
#include <math.h>
using namespace std;
double user_data;
int stopnie(double s)
{
return floor(s);
}
int minuty(double m)
{
return (m - floor(m))*60;
}
int sekundy(double k)
{
return ((k - floor(k))*60-floor(k-floor(k)))*60;
}
int main()
{
cout << "Ile stopni: ";
cin >> user_data;
cout << stopnie(user_data)<<"\370 ";
cout << minuty(user_data)%60<<"' ";
cout << sekundy(user_data)%60<<"\" ";
return 0;
}