Vor- und Nachkommawerte eines doubles bestimmen

Status
Nicht offen für weitere Antworten.

y0dA

Top Contributor
Hi!
Ich habe folgenden Double Wert: 1234.567, wie bekomme ich nun nur die Vorkommerwerte und die Nachkommawerte?

mfg
 
ein Integer hat keine Kommastellen:

also

double x = 1234.5678;
int y = (int)x; //schneidet alles nach dem Komma ab

Modulo 1....der Rest von x dividiert durch 1: also das nach dem Komma:

double nach = x%1
 
Danke, es hat geklappt!

Was mich nun noch interessieren würde wäre, ob man mit einem Double oder einem Integer auch bestimmte Stellen des Wertes auslesen kann oder muss ich da auf String zurückgreifen?

Also bspw. möchte ich von der Vorkommastelle 1234 nur die Werte 3 und 4.
 
sehr schöne lösung.

Oder du wandelst es in einen String um und suchst das komma.

Code:
                                flaot f = 1234.567f;
                                String str = f+"";
		int pos = str.indexOf('.');
		System.out.println(f);
		int vorKomma = Integer.parseInt(str.substring(0, pos));
		int nachKomma = Integer.parseInt(str.substring(pos+1, str.length()));
		System.out.println(vorKomma);
		System.out.println(nachKomma);
:autsch: :autsch: :autsch: :autsch:

is aber genau so schlau wie das hier *g*

Code:
public static boolean isNegativ(int i){
    String str = i+"";
    return (str.substring(0, 1).equalsIgnoreCase("-"));
}
 
y0dA hat gesagt.:
wie bekomme ich nun nur die Vorkommerwerte und die Nachkommawerte?
1. Möglichkeit:
Code:
double myDouble = 1234.5678;
long vorkomma = Math.round(Math.floor(myDouble));
Das bringt dir aber leider nur die Vorkommastellen.

2. Möglichkeit (unter Verwendung von java.lang.String):
Code:
public class Doppelt
{
    public static void main(String[] args)
    {
        double myD = 1234.5678;
        String myDStr = Double.valueOf(myD).toString();

        String[] myDSplit = myDStr.split("\\.", -1);
        System.out.println("Vorkomma:" + myDSplit[0]);
        System.out.println("Nachkomma:" + myDSplit[1]);
    }
}
Die Strings aus myDSplit kannst du dann z.B. mit
Code:
Integer.valueOf(myDSplit[0])
wieder in eine echte Zahl verwandeln.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben