Prawidłowe zaokrąglenie do powyżej 22 miejsc po przecinku.

Prawidłowe zaokrąglenie do powyżej 22 miejsc po przecinku.
RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Trafiłem na codewars na katę w której jako input podawany jest dzielnik dla jedynki. Następnie trzeba obliczyć długość cyklu okresu. Wszystko bungla, tylko problem z wartosciami dla np 1/69 - dla np. floata z precyzja do 25 miejsc to -> 0.0144927536231884059730879 < JEDNAK nie jest to wartość prawidłowa , która tak naprawde powinna wynieść -> 0.0144927536231884057971 0144927536231884057971 < Przez tą niedokładność otrzymuje nieprawidłową długość cyklu ,powinno być 22. Jak uzyskać prawidłową precyzje? Wiem że coś trzeba kombinować w strone konwersji do stringów i rozbiciu liczby na mniejsze wartości. Za wszelkie wskazówki będę wdzięczny. Pozdrawiam!

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Rzuć okiem np. na GMP.

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0
Patryk27 napisał(a):

Rzuć okiem np. na GMP.

Rzuciłem okiem i niestety na serwisie codewars implementacja tego nie przejdzie.

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

Zwykle na takich stronkach trzeba się popisać jakimś algorytmem, a nie umiejętnością konwersji na string.
To przeczytałeś?
https://en.wikipedia.org/wiki/Repeating_decimal

Neutral
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polanów
  • Postów: 151
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5068
0

Poza cytowaną wyżej (@vpiotr) wikipedią, Zobacz również tu:
https://eli.thegreenplace.net/2009/02/25/project-euler-problem-26/
I tu:
http://mathworld.wolfram.com/DecimalExpansion.html
To powinno wystarczyć.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.