2010-12-07 2 views
2

Ich arbeite an meiner Aufgabe für Java und habe eine Klasse namens Triangle erstellt. Dies hat 3 Variablen, side1, side2 und side3. Meine Konstruktormethode benötigt 3 Gleitkommawerte und weist sie jeder Variablen zu.Java: Konvertieren von Ints und Doubles in Floats?

Mein Problem ist, wenn der Benutzer (10,11.1,12.2) setzt, werden diese als (int, double, double) genommen und nicht die float, die ich benötige (die Zuweisung sagt die 3 Seiten müssen Float-Werte sein).

Wie kann ich also jeden Eingang in einen Gleitkommawert konvertieren, unabhängig davon, ob es sich bei der Eingabe um einen Integer oder einen Doppelwert handelt?

Danke,

Jack.

+4

Wie erhalten Sie die Eingabe? –

+0

In diesem Stadium bekomme ich keine Eingabe vom Benutzer, ich muss es manuell eingeben, und meine Zuweisung besagt, dass die drei eingegebenen Werte 10,11,1 und 12,2 sein müssen. –

Antwort

2

Machen Sie Ihre Variable/Parameter type Number. Eine Zahl kann einfach in einen anderen numerischen Primitivtyp konvertiert werden.

Number n1 = (int)1; 
Number n2 = (double)123.456; 

Float f1 = n1.floatValue(); 
Float f2 = n2.floatValue(); 
3

Sie werden die Daten im Allgemeinen als den geeigneten Typ lesen - z. Scanner.nextFloat. Dies wird "10" (oder "11.1") als Float lesen. Für den Compiler zählen nur die Typ-Signaturen.

1

Ich nehme an, Sie verwenden Literale, die das Problem verursacht? Wenn Sie ein "f" nach ihnen kleben, werden sie schweben. Andernfalls hängt es vollständig von Ihrer Benutzeroberfläche ab und davon, wie Sie die Werte erhalten.

1

Wenn Sie Benutzereingaben akzeptieren, werden Sie fast sicher mit Strings auf Benutzerebene zu tun haben. Wenn dies der Fall ist, können Sie Float.valueOf(String) verwenden, um die Float-Darstellung einer Zeichenfolge abzurufen.

Sie finden die statische Methode valueOf(String) für die meisten, wenn nicht alle der numerischen Typen in Java für diese Art von Sache.