Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyznaczanie dokładności nieznanej zmiennej.

Ostatnio zmodyfikowano 2018-02-16 20:19
Autor Wiadomość
matka5432
Temat założony przez niniejszego użytkownika
Wyznaczanie dokładności nieznanej zmiennej.
» 2018-02-14 23:11:04
Witam, w jaki sposób mogę wyznaczyć dokładność (czyli liczbę cyfr dziesiętnych z jaką reprezentowane są liczby) nieznanej zmiennej. Powiedzmy, że jest nią double.
Miałem taki pomysł, aby zapisać do zmiennej wynik dzielenia 1/3 = 0.(3), a następnie mnożyć ją w pętli przez 10, dopóki ostatnia cyfra części całkowitych tej liczby jest równa 3. Problem jest taki, że jeśli przypadkowo cyfra poza zakresem dokładności również będzie równa 3, to otrzymam niepoprawny wynik. (Chciałbym zaimplementować taką funkcję, nie chcę gotowych)
P-169405
pekfos
» 2018-02-14 23:22:10
Jak by to miało działać? Precyzja typów zmiennoprzecinkowych nie jest stała.
P-169406
matka5432
Temat założony przez niniejszego użytkownika
» 2018-02-14 23:55:49
Fakt, dla większych liczb precyzja zmniejsza się. Mi jednak chodzi o długość mantysy (chyba dobrze mówię). Np dla float'a jest równa 7, bo ma on 7 cyfr znaczących + wykładnik.
P-169407
pekfos
» 2018-02-15 00:17:59
Jak chcesz określić długość mantysy w bitach dla jakiegoś typu zmiennoprzecinkowego (zgodnego z IEEE 754), to chcesz maksymalizować n, tak by 1 + 2-n było reprezentowalne.
P-169408
matka5432
Temat założony przez niniejszego użytkownika
» 2018-02-15 00:56:49
Zrobiłem to w ten sposób, że w pętli zapisuje do zmiennej wartość 1+1/2^n a następnie sprawdzam, czy (zmienna-1) * 2^n jest równa jedności, a jeśli tak to zwiększam licznik. Chyba dobrze, bo program zwraca poprawną wartość.
Zastanawia mnie, dlaczego program nie działa poprawnie z wartością 1/2^n i sprawdzeniu czy zmienna * 2^n jest równa jedności?
P-169409
pekfos
» 2018-02-15 01:08:40
To co napisałeś nie ma sensu.
P-169410
matka5432
Temat założony przez niniejszego użytkownika
» 2018-02-15 01:11:34
Przepraszam, oczywiście wartość 1 + 1/2^n. Źle napisałem, ale w programie oczywiście jest 1 + 1/2^n.
P-169411
pekfos
» 2018-02-15 01:17:20
A jak brzmi twoje pytanie, w wersji z sensem?
P-169412
« 1 » 2
  Strona 1 z 2 Następna strona