Der Rest entsteht bei der Division zweier ganzahliger Werte. Der Modulo-Operator (%) gibt dir den Rest zurück.
Aber was du meinst ist wohl eher, dass du dir die Nachkommastellen geben lassen willst... wenn ich dich richtig verstanden hab´
Eine Möglichkeit schreib ich dir hier mal hin:
// Konstruktor
// Hierbei auf die Anführungszeichen achten
// Sollten die Anführungszeichen vergessen werden, wird der falsche Konstruktor
// aufgerufen Das würde zu Ungenauigkeiten führen auf Grund von Darstellungsschwierigkeiten
// zwischen binär und 10er-System
BigDecimal bd = new BigDecimal("12.2");
// Teiler kannst du immer auf 1 lassen. Runden von Werten ist in der
// Klasse BigDecimal nur nach einer Division möglich
BigDecimal teiler = new BigDecimal("1");
// 1. Argument: durch was soll geteilt werden
// 2. Argument wie genau soll gerundet werden. Hier 0, da wir alle Nachkommastellen
// abschneieden möchten
// 3. Argument: es soll immer in Richtung null gerundet werden
BigDecimal tmp = bd.divide(teiler, 0, BigDecimal.ROUND_DOWN);
// Jetzt noch das ganze voneienader abziehen und du hast in result die Nachkommastellen stehen
BigDecimal result = bd.subtract(tmp);
Ach ja, und nicht vergessen java.math.* zu importieren
Eine weitere Möglichkeit wäre mit einer Bitmaske zu arbeiten.
Aber da ich nicht weiss wie lang die Mantisse von double Zahlen in der Binärdartellung ist, und ich auch keine Lust hab das jetzt nachzuschauen, hoffe ich, dass du mit dieser Lösung zufrieden bist.
Grüsse
Andres