Literka 'f' w typie float, double - dlaczego i po co?

0

Witam! Nigdy się nad tym nie zastanawiałem, ale teraz się tym właśnie zainteresowałem - literką 'f' przy typach double i float. Czemu ona służy i kiedy się ją pisze, dlaczego 'f'? W większości aplikacji graficznych, silnikach gier właśnie stosuje się typ float i literkę na końcu 'f'. Proszę o wytłumaczenie tego.

0

1.2 to double, 1.2f to float

0

W C/ C++/ Javie/ itp domyślnie literały to albo int (tzn tutaj jest trochę bardziej skomplikowane, bo mała wartość może być typu char lub short) albo double. Żeby mieć float trzeba dopisać f, żeby mieć long trzeba dopisać l.

0

Generalnie rzecz bioąrac w przypadku takiego przypisywania to nie ma zanaczenia czy napiszesz:
float x = 1;
float y 1.0;
float z = 1.0f;
bo mamy tu niejawną konwersję.

Takie doprecyzowanie ma zastosowanie w sytuacjach gdy np. korzystasz z funkcji przeciążonych lub generycznych: np sin(3.0) i sin(3.0f) to inne wywołania.

0

W Javie np. niedozwolony jest zapis float f = 1.0;, literał musi być float albo trzeba jawnie konwertować.
Sama literka też ma duże znaczenie:

double f = 1.00000001f;
System.out.println(f);
double d = 1.00000001;
System.out.println(d);
double f = 1.00000001f;
printf("%.8f\n", f);
double d = 1.00000001;
printf("%.8f\n", d);

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