Proszę pomocy w języku C#
Napisz program, który wczytuje M i N, oblicza zaś M/N z dokładnością do 25 miejsc po kropce



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.

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB