Java Basics: Vraagje..

Status
Niet open voor verdere reacties.

Scorpia

Gebruiker
Lid geworden
6 nov 2005
Berichten
18
Ok, ik ben nieuw in de wereld van Java
maar hoe kun je 5.333333.. weergeven met het volgende programma????:

public class Test
{
public static void main (String args[])
{
double uitkomst;

uitkomst = 32 / 6;

System.out.println("Uitkomst is:"+ uitkomst);
}

}

// nu geeft hij dus Uitkomst is 6.0
// ik heb double gebruikt om een kommagetal te bekomen, maar zie nog iets over het hoofd waarschijnlijk..
 
Je moet er even rekening mee houden dat 32 / 6 een integer deling is en je dus een integer overhoudt als resultaat. In dit geval is het trouwens 5 en geen 6 ;)

Om 5.33333.. als resultaat te krijgen moet je van 32 of 6 een double maken ipv een integer. Dit kun je doen door er een 'd' achter te zetten, dus bijvoorbeeld:
Code:
32 / 6d
.
 
Ow, ik heb me mistypt, dat moet dus 5.0 zijn.

@ saurie: bedankt, daar was ik zelf niet opgekomen..

Maar als ik nu maar zeven cijfers precisie zou willen..

en dus "float" gebruik:
Code:
uitkomst = 32 / 6f;

waarom geeft hij dan:
Code:
Uitkomst is:5.333333492279053

ipv 5.33333 ??
 
Laatst bewerkt:
32 / 6 kan niet precies worden uitgedrukt, omdat de computer met machten van 2 werkt. Als je dit wel precies wilt doen kun je de java.math.BigDecimal class gebruiken. Die rondt getallen wel goed af.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan