Napisałem ten kod:
float b = 3.6;
i otrzymuję to:
Błąd: nierozwiązany problem z kompilacją:
Niezgodność typów: nie można przekonwertować z podwójnego na zmiennoprzecinkowy
Czemu? Jaka jest definicja float?
Napisałem ten kod:
float b = 3.6;
i otrzymuję to:
Błąd: nierozwiązany problem z kompilacją:
Niezgodność typów: nie można przekonwertować z podwójnego na zmiennoprzecinkowy
Czemu? Jaka jest definicja float?
fdo literału”), podczas gdy inne pytanie dotyczy tego, dlaczego musisz dodać f. Chociaż są powiązane, nie jest to duplikat.
Odpowiedzi:
W Javie, gdy wpiszesz liczbę dziesiętną as 3.6, zostanie zinterpretowana jako double. doublejest 64-bitową precyzją zmiennoprzecinkową IEEE 754, a float32-bitową precyzją zmiennoprzecinkową IEEE 754. Ponieważ a floatjest mniej dokładny niż a double, konwersja nie może zostać wykonana niejawnie.
Jeśli chcesz utworzyć zmiennoprzecinkowy, powinieneś zakończyć swój numer znakiem f(np .:) 3.6f.
Więcej wyjaśnień można znaleźć w definicji pierwotnych typów danych w samouczku Java .
Zrób to
float b= 3.6f;
Literał zmiennoprzecinkowy jest typu float, jeśli jest zakończony literą ASCII F lub f; w przeciwnym razie jego typ jest podwójny i opcjonalnie może być zakończony literą ASCII D lub d