Pytania otagowane jako floating-point

Liczby zmiennoprzecinkowe są przybliżeniami liczb rzeczywistych, które mogą reprezentować większe zakresy niż liczby całkowite, ale wykorzystują tę samą ilość pamięci, kosztem mniejszej precyzji. Jeśli Twoje pytanie dotyczy drobnych błędów arytmetycznych (np. Dlaczego 0,2 + 0,1 równa się 0,300000001?) Lub błędów konwersji dziesiętnej, przed opublikowaniem przeczytaj stronę „Informacje”, do której link znajduje się poniżej.

3
Dlaczego NaN - NaN == 0.0 z kompilatorem Intel C ++?
Powszechnie wiadomo, że NaN rozmnażają się w arytmetyce, ale nie mogłem znaleźć żadnych demonstracji, więc napisałem mały test: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = qNaN - 6.0f; float sub3 …
300 c++  c  floating-point  ieee-754  icc 


6
Dlaczego zmiana kolejności sum zwraca inny wynik?
Dlaczego zmiana kolejności sum zwraca inny wynik? 23.53 + 5.88 + 17.64 = 47.05 23.53 + 17.64 + 5.88 = 47.050000000000004 Zarówno Java, jak i JavaScript zwracają te same wyniki. Rozumiem, że ze względu na sposób, w jaki liczby zmiennoprzecinkowe są reprezentowane w postaci binarnej, niektórych liczb wymiernych ( jak …

2
Dlaczego niektóre porównania typu float <liczby całkowite są cztery razy wolniejsze niż inne?
Porównując liczby zmiennoprzecinkowe z liczbami całkowitymi, ocena niektórych par zajmuje znacznie więcej czasu niż innych wartości o podobnej wielkości. Na przykład: &gt;&gt;&gt; import timeit &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953421000") # run 1 million times 0.5387085462592742 Ale jeśli liczba zmiennoprzecinkowa lub liczba całkowita zostanie zmniejszona lub powiększona o określoną wartość, porównanie przebiega …

19
Dlaczego liczby dziesiętne nie mogą być przedstawione dokładnie w postaci binarnej?
Wysłano do SO kilka pytań dotyczących reprezentacji zmiennoprzecinkowej. Na przykład liczba dziesiętna 0,1 nie ma dokładnej reprezentacji binarnej, więc użycie operatora == w celu porównania jej z inną liczbą zmiennoprzecinkową jest niebezpieczne. Rozumiem zasady reprezentacji zmiennoprzecinkowej. Nie rozumiem, dlaczego, z matematycznego punktu widzenia, liczby po prawej stronie przecinka są już …

3
Zmienne vs dziesiętne w ActiveRecord
Czasami mylą mnie typy danych Activerecord. Err, często. Jednym z moich wiecznych pytań jest, w danym przypadku, Czy powinienem użyć :decimallub :float? Często natrafiam na ten link, ActiveRecord:: dziesiętny vs: zmiennoprzecinkowy? , ale odpowiedzi nie są wystarczająco jasne, aby mieć pewność: Widziałem wiele wątków, w których ludzie zalecają płaskie, aby …



12
Jakie są uzasadnienia dla wszystkich porównań zwracających wartość false dla wartości NaN IEEE754?
Dlaczego porównania wartości NaN zachowują się inaczej niż wszystkie inne wartości? Oznacza to, że wszystkie porównania z operatorami ==, &lt;=,&gt; =, &lt;,&gt; gdzie jedna lub obie wartości to NaN, zwraca false, w przeciwieństwie do zachowania wszystkich innych wartości. Podejrzewam, że upraszcza to w pewien sposób obliczenia numeryczne, ale nie mogłem …

12
Kiedy powinienem używać podwójnego zamiast dziesiętnego?
Mogę wymienić trzy zalety używania double(lub float) zamiast decimal: Zużywa mniej pamięci. Szybsze, ponieważ operacje matematyczne zmiennoprzecinkowe są natywnie obsługiwane przez procesory. Może reprezentować większy zakres liczb. Ale te zalety wydają się mieć zastosowanie tylko do operacji intensywnie obliczających, takich jak te występujące w oprogramowaniu do modelowania. Oczywiście podwójnych nie …






Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.