Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[JAVA] possible loss of precision found

Pagina: 1
Acties:
  • 234 views

Verwijderd

Topicstarter
Hallo,

Bij dit script:

double koersdouble = Double.parseDouble(koers.getText());
int koersint = 100 * koersdouble;

Krijg ik deze foutmelding:

C:\Javaprog\Euro.java:50: possible loss of precisionfound : doublerequired: int int koersint = 100 * koersdouble;

Het maakt niet uit dat ik precisie verlies, aangezien ik een invoer heb, waarbij je moet invullen hoeveel 1 euro waardt is in doller (de koers), maar in mijn programma heb ik het getal keer 100 nodig! Hoe moet ik dit oplossen! want 1,56 * 100 = 156, een integer heb ik nodig.

  • bat266
  • Registratie: Februari 2004
  • Laatst online: 17-11 16:02
Je kunt gebruik maken van de Math klasse Math.round(100*koersdouble) should fix your problem Misschien dat je dan nog een long terug krijgt die je moet casten naar een integer.

Verder is het aan te raden om bij bedragen altijd in centen te berekenen. De afrondingsfouten met bedragen die opgeslagen worden in doubles kunnen namelijk soms voor problemen zorgen

Better to remain silent and be thought a fool then to speak out and remove all doubt.


  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 20:19
Je kunt of gewoon in double blijven werken of gebruik maken van Double.intValue()
Quick and dirty... :P
Java:
1
2
double koers = 100 * koersdouble;
int koersint = Double.intValue(koers);

[ Voor 43% gewijzigd door asfaloth_arwen op 05-08-2008 16:00 ]

Specs


Verwijderd

Topicstarter
Hallo,
bedankt, ik heb voor de 2 optie van asfaloth_awen gekozen, het programma werkt nou!
Dit topic kan dus dicht!

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 04-11 05:12
Verwijderd schreef op dinsdag 05 augustus 2008 @ 16:00:
Hallo,
bedankt, ik heb voor de 2 optie van asfaloth_awen gekozen, het programma werkt nou!
Dit topic kan dus dicht!
Lees anders even de regels. Je gaat GoT nu gebruiken als helpdesk, daar is het niet voor. Topics blijven open staan, tenzij er reden is om ze te sluiten.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:11
Logisch nadenken is hier van toepassing. Als je een double toewijst aan een int, kan je idd precision verliezen. Tenzij je dus expliciet gaat casten of convnerten, zoals reeds is aangegeven.

Trouwens, topics gaan hier niet dicht als ze opgelost zijn. Ze gaan wel dicht als de topicstarter geen blijk geeft van eigen inzet, zoals hier wel het geval is: de foutmelding begrijpend lezen, je code lezen en begrijpen, logisch nadenken, en actie ondernemen ipv voor een dergelijk probleem een topic te posten en de vraag neer te plempen. Dan denk je wel 'iemand anders lost het wel ff voor me op', maar dat is niet de bedoeling van dit forum.
Daarnaast is het voor jezelf ook interessanter als je zelf iets opsteekt, wat in dit geval ws niet het geval is, aangezien je gewoon klakkeloos de oplossing die door iemand anders aangedragen is, gaat gaan overnemen.

[ Voor 30% gewijzigd door whoami op 05-08-2008 16:05 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.