float vs double - ostrzeżenie

0

cześć, zrobiłem sobie funkcję w tym stylu:

double fun(float x = 1.1)
{
if(x < 1)
x = 1.1;
//...
}
 

i wywala mi następujące ostrzeżenie: warning C4305: '=' : truncation from 'double' to 'float'
Czy może mi ktoś napisać o co kaman?
Jak zmienię w funkcji float na double to błąd/ostrzeżenie znika.

0

Literał 1.1 to double - przypisujesz double do float, więc ostrzega o możliwej utracie danych(precyzji). 1.1f to literał float.

0

Domyślnie literały liczb ułamkowych są traktowane jako double. Żeby były typu float, dodaj na koniec literkę f, tj. np. float x = 1.1f.

0

dzięki panowie - kiedyś się właśnie zastanawiałem co oznacza ta literka f za liczbą :D -> mam odpowiedź na oba pytania :]

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