C
Coon
Gast
hi !
Ich bin gerade dabei, einen PQ-Formel Rechner zu schreiben.
Das hat soweit auch geklappt, bis ich auf die Idee kam zu überprüfen, ob auch wirklich nur Zahlen eingegeben wurden.
hab dann ein wenig gegoogelt und mir ein paar Befehle zusammengesucht, bis mein code so aussah:
das kannste hab ich mir so gedacht, das Java für jedes Zeichen den ASCII Wert überprüft und festellt, ob er kleiner als 47 und größer als 58 ist (dazwischen liegen die Zahlen ;-) )
allerdings funzt nun garnix mehr :-(
was hab ich falsch gemacht ?
Ich bin gerade dabei, einen PQ-Formel Rechner zu schreiben.
Das hat soweit auch geklappt, bis ich auf die Idee kam zu überprüfen, ob auch wirklich nur Zahlen eingegeben wurden.
hab dann ein wenig gegoogelt und mir ein paar Befehle zusammengesucht, bis mein code so aussah:
Code:
import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;
public class pqformel2 extends Applet implements ActionListener {
Label lP;
Label lQ;
Label lResult;
Button bPerform;
TextField tP;
TextField tQ;
TextField tResult;
double dP;
double dQ;
double dResult;
int iIllegal;
public void init() {
setLayout(null);
lP = new Label("P");
lQ = new Label("Q");
lResult = new Label("");
bPerform = new Button("Rechnen");
tP = new TextField("");
tQ = new TextField("");
tResult = new TextField("");
lP.setBounds(10,10,60,20);
lQ.setBounds(10,40,60,20);
lResult.setBounds(10,70,1000,20);
bPerform.setBounds(10,100,100,20);
tP.setBounds(80,10,60,20);
tQ.setBounds(80,40,60,20);
tResult.setBounds(80,70,60,20);
add(lP);
add(lQ);
add(lResult);
add(bPerform);
add(tP);
add(tQ);
bPerform.addActionListener(this);
}
public void actionPerformed (ActionEvent ereignis) {
for (int pos=0;pos <= (tP.getText().length());pos++) {
if (Integer.parseInt(tP.getText().substring(pos,pos+1))<47&&Integer.parseInt(tP.getText().substring(pos,pos+1))>58) {
iIllegal=1;
}
}
if (iIllegal==0) {
dP = Double.parseDouble(tP.getText());
dQ = Double.parseDouble(tQ.getText());
if (dP == 0&&dQ!=0){
lResult.setText("P darf nicht 0 sein, da es sonst kein Ergebnis gibt.");
}
else {
double dPos = -(dP/2)+Math.sqrt(((dP/2)*(dP/2))-dQ);
double dNeg = -(dP/2)-Math.sqrt(((dP/2)*(dP/2))-dQ);
lResult.setText("n1 = "+String.valueOf(dPos)+" n2 = "+String.valueOf(dNeg));
}
}
}
}
das kannste hab ich mir so gedacht, das Java für jedes Zeichen den ASCII Wert überprüft und festellt, ob er kleiner als 47 und größer als 58 ist (dazwischen liegen die Zahlen ;-) )
allerdings funzt nun garnix mehr :-(
was hab ich falsch gemacht ?