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.

7
Ostrzeżenie C ++: dzielenie podwójnego przez zero
Przypadek 1: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } Kompiluje się bez żadnych ostrzeżeń i wydruków inf. OK, C ++ radzi sobie z dzieleniem przez zero ( zobacz na żywo ). Ale, Przypadek 2: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0)<<std::endl; } Kompilator …


10
Konwertuj zmiennoprzecinkowe na podwójne bez utraty precyzji
Mam prymitywny pływak i potrzebuję jako prymitywny podwójny. Rzucenie spławika na podwójne daje mi dziwną dodatkową precyzję. Na przykład: float temp = 14009.35F; System.out.println(Float.toString(temp)); // Prints 14009.35 System.out.println(Double.toString((double)temp)); // Prints 14009.349609375 Jeśli jednak zamiast rzutowania wyprowadzam zmiennoprzecinkowy jako ciąg i analizuję ciąg jako podwójny, otrzymuję to, czego chcę: System.out.println(Double.toString(Double.parseDouble(Float.toString(temp)))); // …

8
Czy jakiekolwiek kompilatory JVM JVM generują kod, który używa wektoryzowanych instrukcji zmiennoprzecinkowych?
Powiedzmy, że wąskim gardłem mojego programu w Javie są naprawdę ciasne pętle do obliczania szeregu wektorowych iloczynów skalarnych. Tak, sprofilowałem, tak, to wąskie gardło, tak, to jest znaczące, tak, taki właśnie jest algorytm, tak, uruchomiłem Proguard, aby zoptymalizować kod bajtowy itp. Praca jest zasadniczo iloczynami skalarnymi. Tak jak w, mam …

6
Ile jest liczb podwójnych między 0,0 a 1,0?
To jest coś, o czym myślę od lat, ale nigdy wcześniej nie spytałem. Wiele (pseudo) generatorów liczb losowych generuje liczbę losową z zakresu od 0,0 do 1,0. Z matematycznego doublepunktu widzenia w tym zakresie są nieskończone liczby, ale jest to liczba zmiennoprzecinkowa, a zatem ma skończoną precyzję. Oto pytania: Ile …

18
Łatwe, ładne drukowanie pływaków w Pythonie?
Mam listę pływaków. Jeśli po prostu printto, wygląda to tak: [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006] Mógłbym użyć print "%.2f", co wymagałoby forpętli do przejścia przez listę, ale wtedy nie zadziałałoby dla bardziej złożonych struktur danych. Chciałbym coś takiego (całkowicie to zmyślam) >>> import print_options >>> print_options.set_float_precision(2) >>> print [9.0, …





2
Czy ta optymalizacja zmiennoprzecinkowa jest dozwolona?
Próbowałem sprawdzić, gdzie floattraci zdolność do dokładnego reprezentowania dużych liczb całkowitych. Więc napisałem ten mały fragment: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } Ten kod wydaje się działać ze wszystkimi kompilatorami, z wyjątkiem clang. Clang generuje prostą nieskończoną pętlę. Godbolt …


4
Jaka jest najbliższa podwójna wartość 1,0, a nie 1,0?
Czy istnieje sposób, aby programowo uzyskać podwójną wartość najbliższą 1,0, ale w rzeczywistości nie jest to 1,0? Jednym z hackerskich sposobów byłoby zapamiętanie podwójnej liczby całkowitej do tej samej wielkości, a następnie odjęcie jednej. Sposób działania formatów zmiennoprzecinkowych IEEE754 skutkowałby zmniejszeniem wykładnika o jeden podczas zmiany części ułamkowej ze wszystkich …

4
Konwersja pływaka na łańcuch bez zaokrąglania go
Tworzę program, który z powodów, których nie trzeba wyjaśniać, wymaga konwersji typu float na ciąg znaków do policzenia za pomocą len (). Jednak str (float (x)) powoduje, że x jest zaokrąglane po konwersji na łańcuch, co odrzuca całość. Czy ktoś wie, jak to naprawić? Oto kod używany, jeśli chcesz wiedzieć: …


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.