Toon posts:

[JAVA] Eurocalculator

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey, op school hebben wij laatst iets over Java gehad, en dat hoofdstuk is nu voorbij, maar ik wou nog ff voor mezelf testen of ik een eurocalculator kan maken, maar dat lukt niet, ik kan wel voor elkaar krijgen dat hij omrekent, maar dan rekent hij niks achter de comma mee en van dat soort dingetjes. Kan iemand mij ff een heel simpel scriptje sturen, want ik kan niet rusten voordat ik het snap. Alvast bedankt!

Verwijderd

Waarschijnlijk reken je met int's, dat zijn gehele getallen, je kan beter float's gebruiken, die kunnen wel met decimalen overweg.
Hiervoor hoef je niet zoveel te veranderen, alleen ipv
int uitkomst;
dim je dan als
float uitkomst;
that's it!

Verwijderd

Topicstarter
Hey, ik heb nu floats erop gedaan en Integer.parseInt vervangen door Float.parseFloat wat dus goed werkt, maar ik heb ontdekt dat hij maar 8 tekens lang mag zijn. Weet iemand een ander ideetje?

Verwijderd

Op zaterdag 19 januari 2002 12:28 schreef BasjeBanaantje het volgende:
Hey, ik heb nu floats erop gedaan en Integer.parseInt vervangen door Float.parseFloat wat dus goed werkt, maar ik heb ontdekt dat hij maar 8 tekens lang mag zijn. Weet iemand een ander ideetje?
Heb je meer tekens nodig dan :? Misschien double dan :)

int, float en double zijn trouwens 'data types' voor het geval je er iets over op wilt zoeken :)

Verwijderd

Op zaterdag 19 januari 2002 12:11 schreef KoenM het volgende:
Waarschijnlijk reken je met int's, dat zijn gehele getallen, je kan beter float's gebruiken, die kunnen wel met decimalen overweg.
Hiervoor hoef je niet zoveel te veranderen, alleen ipv
int uitkomst;
dim je dan als
float uitkomst;
that's it!
Veel beter is het gebruik van java.math.BigDecimal voor dit soort berekeningen, krijg je tenminste volledig antwoord die je op het laatst moement (bij return ofzo) gaat afronden. iig, zeker als je nog verdere berwerkingen mee wilt doen.

Verwijderd

Op zaterdag 19 januari 2002 12:32 schreef _Jah het volgende:
Veel beter is het gebruik van java.math.BigDecimal voor dit soort berekeningen, krijg je tenminste volledig antwoord die je op het laatst moement (bij return ofzo) gaat afronden. iig, zeker als je nog verdere berwerkingen mee wilt doen.
Maar dan wordt het wel meteen een stuk ingewikkelder. En 8 decimalen lijkt me ook wel genoeg, want de wisselkoers is immers ook maar in zo'n 5 decimalen bekend (2.20371 :?) dus als je dan een antwoord in 100 decimalen terug geeft, geeft dat een verkeerd beeld.
Eigenlijk zou je niet meer dan 5 of 6 decimalen _mogen_ terug geven (heb ik volgens mij ooit eens bij natuurkunde geleerd :))

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je het echt goed wilt doen gebruik je de BigDecimal van IBM. In tegenstelling tot de standaard implementatie in Java gebruikt deze decimale berekening, waardoor je niet de vervelende 0.9999999 effecten krijgt.

Zie:
http://alphaworks.ibm.com/tech/bigdecimal

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

ik zou de NumberFormat class gebruiken.
en als Data Type double.

op deze manier:

// het bestaat uit 2 klassen: Main en Converteer!

import java.text.*;

class Main{

public static void main(String[] args){
Converteer converteer1 = new Converteer();

converteer1.convertGuldens(10);

}

}

//2e Klasse

class Converteer{

public void convertGuldens(double g){
double euro = g/koersEuro;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(5);
System.out.println(formatter.format(g) + " gulden is " + formatter.format(euro) + " euro");

}

public double koersEuro = 2.20371;
public double guldens;

}

// einde

Verwijderd

oja, de output van deze applicatie is:

10 gulden is 4,5378 euro.


Maar je kan natuurlijk ook minder decimalen instellen door in plaat van het getal 5 een kleiner getal te kiezen.

MZZZL 8-)

Verwijderd

is t gelukt?

;)
Pagina: 1