Wyznaczanie dokładności nieznanej zmiennej.
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Wyznaczanie dokładności nieznanej zmiennej.

AutorWiadomość
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
» 2018-02-14 23:22:10
Jak by to miało działać? Precyzja typów zmiennoprzecinkowych nie jest stała.
P-169406
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
» 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
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
» 2018-02-15 01:08:40
To co napisałeś nie ma sensu.
P-169410
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
» 2018-02-15 01:17:20
A jak brzmi twoje pytanie, w wersji z sensem?
P-169412
« 1 » 2
 Strona 1 z 2Następna strona