Dzień dobry!
Moja funkcja ma na celu zamienienie ułamka dziesiętnego tak by liczby po przecinku stały się liczbami całkowitymi.
void fun(double Fnumber)
{
double afPoint = fmod(Fnumber, 1);
cout << afPoint << endl;
while((afPoint - static_cast<int>(afPoint)) != 0)
{
afPoint *= 10;
}
cout << "zmienna = ";
cout << afPoint;
}
przykłady oczekiwanego działania:
wejście: 0,312
wyjście: 312
-------------------
wejście: 21,32
wyjście: 32
działanie w rzeczywistości:
wejście: 0,312
wyjście: 312
-------------------
wejście: 21,32
wyjście: "Program nie kończy się"
Próbowałem zamiast rzutowania używać funkcji fmod z biblioteki cmath, ale wtedy wyniki były jeszcze bardziej nie
przewidywalne.
Błąd polega na nie kończeniu się programu gdy wprowadzana liczba jest większa od zera.