Nachkommastellen begrenzen bei float

CosmoKey

Mitglied
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
 
Entweder die round() Methode verwenden oder:
Code:
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.
 
Hallo,

ich habe das Problem, das bei meinem Programm Geldbeträge mit maximal 2 Nachkommastellen eingegeben werden. Durch
Code:
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.
 
Hallo,

warum nicht so:
Java:
/**
 * 
 */
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
 
Zurück