Toon posts:

[java] double --> float

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi. Ik heb een probleempje met een simpele berekening. De functie die ik heb geschreven ziet er als volgt uit:
code:
1
2
3
4
5
6
  float rijStap = 0.1f;
  double huidigeHoek = 0.0;

  public float berekenX(){
    return Math.cos(huidigeHoek) * rijStap;
  }

Ik krijg hiermee echter een foutmelding omdat de cos functie een double verwacht en dus ook weer teruggeeft. Deze kan ie vervolgens niet vermenigvuldigen met een float (huidigeHoek). Dat is mijn theorie van wat er fout gaat althans.
Nu heb ik al heel wat gekloot met oa de functie floatValue, maar ik kom er niet uit.
btw, lijkt me duidelijk dat ik een beginner ben.
Wie weet wat ik moet doen? thx

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

double * float = double, dat is ook wel redelijk logisch, net als een byte * long altijd een long opleverd. Vermenigvuldiging gaat goed, alleen de uitkomst is een double terwijl een float wordt verwacht (return type is immers float). Wil je werkelijk een float teruggeven, dan zul je moeten casten (door er (float) voor te zetten)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

float x = 0.1;
double bla = (double)x;

En lees meer over casten in je java-boek, of de tutorials/java-language-manuals op java.sun.com.

Dit topic is gesloten.