Jestem bardzo nowy w programowaniu. Mam następujący kod:Dlaczego java zmusza mnie do dodania f, gdy używam float?
float f = 18.45f;
to działa dobrze. Gdybym zmienić na:
float f = 18.45;
java mówiąc to jako błąd:
error: possible loss of precision
ale jego opcjonalne w kategoriach double
. Ale znowu w long
mam ten sam problem.
Dlaczego java zmusza mnie do tego, ale nie w przypadku z double
?
'double' jest domyślnym typem liczb zmiennoprzecinkowych. '18.45' jest domyślnie" podwójnym " – toniedzwiedz
. Większym problemem jest to, dlaczego używasz float, gdy podwójne jest lepsze, ponieważ jest bardziej precyzyjne (jak ostrzega Cię Java)? Jedyny przypadek, w którym używam wartości zmiennoprzecinkowej, występuje wtedy, gdy parametr metody wymaga float dla właściwego przeciążenia. –
Jest tak, aby ludzie nie przychodzili tak często do Stack Overflow, aby zapytać, dlaczego mnożenie float zostało przerwane w Javie. –