Po co dodawane są sufiksy przy wartościach zmiennych?

2014-09-13 16:04

Rejestracja: 5 lat temu

Ostatnio: 2 tygodnie temu

0

Po co są dodawane sufiksy przy wartościach zmiennych?
Np:

float currentVelocity = 5.86f; 

Myślałem, że float jest zmiennoprzecinkowy i mogę zadeklarować 5.86. Czyli jak dodam modyfikator to zmieni się typ z float na double? To nie lepiej od razu zadeklarować double?

Pozostało 580 znaków

2014-09-13 16:34

Rejestracja: 14 lat temu

Ostatnio: 4 minuty temu

0

np:

int x=(int)(y/10f);

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-09-13 16:52
Moderator

Rejestracja: 12 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Wrocław

0
woks napisał(a):

Myślałem, że float jest zmiennoprzecinkowy i mogę zadeklarować 5.86. Czyli jak dodam modyfikator to zmieni się typ z float na double? To nie lepiej od razu zadeklarować double?

Sam literał 5.86 jest typu double, więc musisz dodać sufiks, aby móc przypisać go do zmiennej typu float. Możesz też zadeklarować zmienną jako double, ale jeśli koniecznie potrzebny jest float, to to nie jest rozwiązanie.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2014-09-13 17:02

Rejestracja: 5 lat temu

Ostatnio: 2 tygodnie temu

1

Zawsze myślałem, że float różni się od double tym, że ten drugi ma po prostu większą pojemność.
Jeżeli nie mogę zapisać 5.86 pod typem float to do czego służy ten typ zmiennych (float)?
Często widziałem w poradnikach jak używano zmiennej float gdzie przy wartości był modyfikator f. Jakie jest praktyczne zastosowanie takich modyfikatorów skoro można użyć od razu zmiennej double?

Pozostało 580 znaków

2014-09-13 17:07

Rejestracja: 5 lat temu

Ostatnio: 2 miesiące temu

Możesz zapisać 5.86 jako float. Chodzi jedynie o to, że jak w kodzie napiszesz po prostu 5.86, to jest to traktowane jako wartość double, więc piszesz 5.86f, żeby powiedzieć kompilatorowi, że chcesz to jako float.
Zmienna float zajmuje 2x mniej miejsca niż double, czasami to robi różnicę.

Pozostało 580 znaków

2014-09-13 17:11

Rejestracja: 5 lat temu

Ostatnio: 2 tygodnie temu

0

Właśnie o praktyczne zastosowanie mi chodziło.
Czyli głównie chodzi o to, że przy kompilowaniu bez podania modyfikatora f zmienna float zostanie przekształcona na double co zwiększy zajmowane przez nią miejsce?
Czy to jedyne zastosowanie czy jest coś jeszcze? Pytam tak uparcie bo mam książkę gdzie autor pominą wyjaśnienie tego a często z tego korzysta.

edytowany 1x, ostatnio: furious programming, 2014-09-14 23:33

Pozostało 580 znaków

2014-09-13 17:36
Moderator

Rejestracja: 12 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Wrocław

0
woks napisał(a):

Zawsze myślałem, że float różni się od double tym, że ten drugi ma po prostu większą pojemność.

Bo tak jest, a co za tym idzie, zajmuje też dwa razy więcej pamięci.

Jeżeli nie mogę zapisać 5.86 pod typem float to do czego służy ten typ zmiennych (float)?

Możesz. Typ float służy do przeprowadzania obliczeń z mniejszą dokładnością.

Często widziałem w poradnikach jak używano zmiennej float gdzie przy wartości był modyfikator f. Jakie jest praktyczne zastosowanie takich modyfikatorów skoro można użyć od razu zmiennej double?

A jakie jest praktycznie zastosowanie pralki, skoro można użyć lodówki?

Modyfikator f służy do tego, żeby w ogóle skompilować kod, bo kompilator domyślnie przyjmuje liczby dziesiętne jako double i nie pozwala ich wstawić do zmiennych typu float. A mmiennych float używa się, gdy chce się obliczać z mniejszą dokładnością albo dla zaoszczędzenia pamięci.

Czyli głównie chodzi o to, że przy kompilowaniu bez podania modyfikatora f zmienna float zostanie przekształcona na double co zwiększy zajmowane przez nią miejsce?

NIE. To się przecież w ogóle nie skompiluje!


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
edytowany 1x, ostatnio: somekind, 2014-09-13 17:37

Pozostało 580 znaków

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