Java Taschenrechner

02/01/2013 17:13 Pataya40#1
Hallo,

Momentan programmiere ich in Netbeans an einem Taschenrechner(mit Buttons).
Mit den Grundfunktionen bin ich soweit fertig, nun würde ich noch gerne Knopf einfügen, durch den man das Vorzeichen der eingegeben Zahl ändern kann.

Deshalb wollte ich die Zahl mit (-1) multiplizieren: (input1 ist der Name der Variable)
Code:
    private void minusActionPerformed(java.awt.event.ActionEvent evt) {                                      
        input1=input1*(-1);
        this.ausgabe.setText(input1.toString());
    }
Funktioniert leider nicht.
Jemand eine Idee was falsch ist bzw was ich sonst machen könnte?

Außerdem würde ich gerne Kommastellen setzten können, hab aber nicht wirklich eine Idee wie ich das machen könnte. Einziger Ansatz wäre, die Zahl durch 10 zu divideren.
Da sich die Zahl aber erst ändern soll, nachdem der nächste Knopf gedrückt wurde weiß ich nicht, wie man das realisieren könnte.

Würde mich freuen, wenn mir jemand helfen könnte.

lg

P.S Falls falscher Bereich --> moven
02/01/2013 21:08 Devil0s#2
Wird das Event überhaupt ausgelöst??
Du kannst auch statt
input = input *(-1);
input *= -1;
schreiben
02/01/2013 21:29 Pataya40#3
Quote:
Originally Posted by Devil0s View Post
Wird das Event überhaupt ausgelöst??
Du kannst auch statt
input = input *(-1);
input *= -1;
schreiben
Jetzt wird es ausgeführt, ja.
Danke für den Tipp !

Hab noch ein bisschen herumgebastelt, momentan läuft alles außer das Komma setzten. Kann mir da jemand weiterhelfen?
02/02/2013 00:34 Tasiro#4
Wie kommt es, dass in deiner Variable input1 der Wert der Eingabe als Zahl steht? Ich nehme an, dass du den Eingabetext konvertierst oder konvertieren lässt, da wäre ein guter Ansatzpunkt, um Zahlen mit Nachkommastellen (und überhaupt Kommazeichen) übersetzbar zu machen.

Wenn du keine vorgefertigte Funktion dazu nutzen solltest, wird du vermutlich etwa das Folgende machen:
Das könntest du ändern, indem du von einem Modus (nur eine ganze Zahl) bei einem Kommazeichen in einen weiteren Modus (Zahl mit Nachkommastellen) wechselst. Dazu könntest du etwa als Abbruchbedingung der ersten Schleife ein Kommazeichen nehmen und dann in die zweite Schleife springen, in der du die Nachkommastellen berechnest. Dabei könntest du z. B. einen Faktor verwenden, den du bei jeder neuen Nachkommastelle zehntelst, mit dem du dann die entsprechende Ziffer multiplizierst und dann zum Ergebnis hinzufügst. Das könnte etwa so aussehen:
Als Kommazeichen könnten etwa das Komma selbst oder der Punkt genutzt werden.
02/02/2013 08:15 Devil0s#5
Du kannst mich wenn du willst bei skype adden. Dann kann ich mal über dein Code rüberschauen und du kannst mich fragen
02/05/2013 12:55 'Henry.#6
um ein Komma zu setzen würde ich erstmal die Zahl, falls in einem Integer gespeichert in einen Double umwandeln, damit man eine Kommazahl hat ;)

um das Komma zu schieben, kommt einfache Mathematik zum Einsatz.

d = Anzahl der Stellen um die das Komma verschoben wird
d ist positiv um nach rechts zu schieben, negativ um nach links zu schieben.
x mit Komma = x*10^d

5 => 500:
5*10^2

5 => 50:
5*10^1

5 => 5000:
5*10^3

in die andere Richtung genauso:
5 => 0,5:
5*10^-1

5 => 0,05:
5*10^-2


5 => 0,005:
5*10^-3


mfg Henry.