liczby zmiennopozycyjne

0

Mam mały problem...a mianowicie, czy istnieje dobra metoda do porównywania liczb zmiennoprzecinkowych, bo czytałem że nie powinno się tego robić za pomocą == lub !=, ponieważ maszyna i tak zaokrągli wynik i w przypadku np. pętli while() nasz program się nigdy nie zakończy.

Czy stosując typ long double tracę na precyzji?

Stosując ofstream i zapisując liczby do pliku, to nie mogę zapisać cyfry z 10 miejscami po przecinku, tylko program automatycznie zapisuje z 4 miejscami po przecinku, choć w konsoli wyświetlane jest więcej, poprzez cout.precision(). Wie ktoś co można zrobić by zapisać np. całe 10 miejsc po przecinku? :D

Jest może jakaś "prosta" w obsłudze biblioteka do precyzyjnej obsługi liczb zmiennopozycyjnych? Bo lookałem miracle, czytałem w dokumentacji, ale wydaje mi się że trochę mnie to jeszcze przerasta. Pozdro

0

cout używa się identycznie jak pliku tekstowego (ofstream).

Porównanie liczb zmiennoprzecinkowych musisz zrobić z pewnym marginesem błędu, tj. jeśli wartość bezwzględna z różnicy jest wystarczająco mała to liczby można uznać za równe.

Poza tym raczej rzadko stosuje się takie porównanie. Może da się użyć liczb całkowitych ? Co dokładnie robisz ? Przypuszczam, że źle podchodzisz do sprawy skoro chcesz przyrównywać liczby zmiennoprzecinkowe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1