# Nachkommastellen begrenzen bei float



## CosmoKey (23. März 2004)

Hi!

Gibt es die Möglichkeit, die Nachkommastellen bei einer float variable zu begrenzen

z.B.   float-wert: 5.432342
soll nur 2 nachkommastellen haben: 5.43


----------



## Retlaw (23. März 2004)

Entweder die round() Methode verwenden oder:

```
float zahl = (float)5.432342;
float rund = (float)(((int)(zahl*100))/100.0);
```
Also einfach das Komma durch Multiplikation verschieben, restliche Stellen durch konvertieren in int abschneiden und Komma durch Division zurückverschieben.


----------



## Thomas Darimont (23. März 2004)

Hallo!

Siehe:
http://www.tutorials.de/forum/showthread.php?threadid=140040&highlight=runden

http://www.tutorials.de/forum/showthread.php?threadid=147645&highlight=runden

Gruß Tom


----------



## KlaDi (20. März 2007)

Hallo,

ich habe das Problem, das bei meinem Programm Geldbeträge mit maximal 2 Nachkommastellen eingegeben werden. Durch 
	
	
	



```
Float.parseFloat(txt_geldwert.getText().replaceAll(",", "."));
```
 lese ich den Wert ein und mache ihn zu einem Float. Intern werden die Werte aber mit mehr Nachkommestellen angezeigt und auch berechnet, dadurch kommt es zu Fehlern bei den Endbeträgen.

Ich hab nur Addition und Subtraktion in meinem Programm, es kann also eigentlich theoretisch nie eine Zahl mit mehr als 2 Nachkommastellen entstehen. Ich verstehe also nicht wo die anderen Nachkommastellen herkommen!?

Gruß KlaDi.


----------



## Thomas Darimont (20. März 2007)

Hallo,

warum nicht so:

```
/**
 * 
 */
package de.tutorials;

import java.text.DecimalFormat;
import java.util.Scanner;

/**
 * @author thomas.darimont
 *
 */
public class DecimalFormatExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        String number = "12,99";
        
        //Entweder so:
        System.out.println(new DecimalFormat("0,00").parse(number).floatValue());
        //Oder so:
        Scanner scanner = new Scanner(number);
        System.out.println(scanner.nextFloat());
    }
}
```

Weiterhin siehe:
http://www.faqs.org/faqs/de/comp-lang-java/faq/
"Warum rechnet Java falsch?"

Gruß Tom


----------

