Zapis liczby float (...f)
Ostatnio zmodyfikowano 2011-12-17 18:45
Savail Temat założony przez niniejszego użytkownika |
Zapis liczby float (...f) » 2011-12-17 18:22:39 Hej, Wie ktos jaka jest roznica pomiedzy jakas liczba np. 2.5 a 2.5f? Zauwazylem ze bez dodania f czesto program zle odczytywal wartosc w pewnych momentach... Bede wdzieczny za kazda pomoc |
|
pekfos |
» 2011-12-17 18:28:07 2.5 jest domyślnie double. f dodaje się by typem był float. W podobnym celu używa się -u (by wymusić unsigned), -l (long), itd. |
|
Savail Temat założony przez niniejszego użytkownika |
» 2011-12-17 18:33:41 aha dzieki wielkie |
|
Savail Temat założony przez niniejszego użytkownika |
» 2011-12-17 18:35:17 a wiec w przyrownywaniu zmiennej jakiegos typu do stalej (np 2.5) zawsze trzeba wymuszac typ stalej taki jaki ma zmienna do ktorej przyrownuje? |
|
pekfos |
» 2011-12-17 18:38:05 nie zawsze. Problem leży w dokładności. jak masz 1/3.0f to wynik będzie mniej dokładny niż 1/3.0.
0.(3) z dokładnością do n miejsc != 0.(3) z dokładnością do 2n miejsc. //edit: (dla n>0, oczywiście :P) |
|
akwes |
» 2011-12-17 18:40:29 int main() { double a = 2 / 4; double b = 2.f / 4.f; std::cout << a << ' ' << b; getch(); }
O takie różnice Ci chodzi? // hoho, ale się grzebałem z postem że tu juz odpowiedzi mnóstwo xD |
|
Savail Temat założony przez niniejszego użytkownika |
» 2011-12-17 18:44:39 k dzieki za pomoc ^^ |
|
pekfos |
» 2011-12-17 18:45:15 #include <iostream> int main() { double a = 1 / 3.0; float b = 1 / 3.0f; std::cout << std::boolalpha <<( a == b ) << " (" <<( a - b ) << ")"; } Taki kod demonstrujący te różnice. close. |
|
« 1 » |