Odpowiedź :
Odpowiedź
Taaak, ale jest proste rozwiązanie. Oddzielnie liczymy część całkowitą i część ułamkową.
Tym razem nietypowo zrobiłam program ilustracyjny (w pierwszym załączniku). Wyniki jego działania są w drugim załączniku.
Rozwiązaniem zadania byłby program po usunięciu wierszy 16-19 oraz po usunięciu znaków komentarza z wierszy 12-14.
_______________________________________________
Dopisałam program, który można użyć bezpośrednio jako rozwiązanie zadania (3. załącznik). Wynik jego działania umieściłam w 4. załączniku.
Ewentualnie – według uznania – można pominąć wiersze
- 20-21 porównanie ze zwykłym dzieleniem.
- 29-31 porównanie do wyniku, który nie jest ograniczony do 25 cyfr po przecinku.
Oczywiście w przypadku gdy wyniku dzielenia nie można przedstawić w postaci ułamka dziesiętnego, żadne sztuczki nic nie zmienią tego faktu (braku możliwości zapisu). Mój przykład tylko pokazuje, że jest różnica, a tę najlepiej widać gdy wynik można zapisać jako ułamek dziesiętny.
Wyjaśnienie
Jak widać w drugim załączniku przy przykładowych liczbach z mojego przykładu są tylko drukowane 23 miejsca po znaku dziesiętnym. Oczywiście można by kazać wydrukować 25 miejsc, ale to będą zera.
Aby nie trzeba było tyle wpisywać możesz do testów użyć
M = 19073486328125
N = 134217728
dokładny wynik też jest
142108,547152020037174224853515625
ToString("0.0000000000000000000000000")
oznacza, że będzie 25 cyfr po przecinku, nawet jeśliby miałyby być zera na końcu.
Aha, dla mnie było oczywistym, że program pisany w Polsce, w polskiej szkole jest po polsku, a więc znakiem dziesiętnym jest przecinek.
Program przetestowałam pod dotnetfiddle (.NET 6), replit oraz Visual Studio.