Felmeddelande:
possible loss of precision
found: double
required: float
this.vikt = vikt + liter * 0.8;
Det blir fel vid "*", både vikt och liter är av typen float så varför blir det fel?
2 svar · 357 visningar · startad av JulleBoy
Felmeddelande:
possible loss of precision
found: double
required: float
this.vikt = vikt + liter * 0.8;
Det blir fel vid "*", både vikt och liter är av typen float så varför blir det fel?
JulleBoy skrev:
Felmeddelande:
possible loss of precision
found: double
required: floatthis.vikt = vikt + liter * 0.8;Det blir fel vid "*", både vikt och liter är av typen float så varför blir det fel?
För att svara på din fråga:
Antar att du har deklarerat någåt sånthär
float vikt;
setVikt(float vikt, float liter)
{
this.vikt = vikt + liter* 0.8;
}
Som du säger så är vikt och liter deklarerat som float MEN inte 0.8.
0.8 som du har skrivit det är en double eftersom det är grundatomären för decimaltal i java.
Du borde skriva this.vikt = vikt + liter * 0.8f;
Notera det lilla f:et jag skrivit efter 0.8. Det markerar att talet skall betraktas som en float. Om du använder dig av din lösning blir det fel eftersom liter först downcastas till en double och sedan konverteras till en float.