Jeg er løbet ind i et mindre problem. Det er, at jeg ikke kan få Java 1,1,6 til at addere to værdier. Man skal skrive de to talværdier i to textarea´er (tekstfelter), hvorpå min applikation skal lægge de to talværdier sammen og udskrive dem.
Kodestumpen ser sådan ud:
String vaerdi1 = felt1.getText();
String vaerdi2 = felt2.getText();
String facit = (vaerdi1+vaerdi2);
textfelt.setText(facit);
Det som min applikation gør er, at hvis jeg har angivet værdien 1 i felt1 og værdien 2 i felt 2, så udskriver applikationen "21" i stedet for "3". Nogle, der ved, hvad der kan være galt ?
16-09-1991
Du får et String objekt, det skal du have lavet om til en Integer.
String facit = (Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText()))
Bemærk at java gerne selv skulle caste tilbage til String.
---
Miracle.dk - we dare, share & care.
26-06-2007
Du prøver på at addere 2 strenge istedet for 2 integers.
16-09-2007
Når jeg prøvet at indsætte:
Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText());
men så siger programmet, at der mangler ")" i linjen.
06-12-2002
Prøv det her:
int result = Integer.parseInt(felt1.getText()) + Integer.parseInt(felt2.getText());
16-09-2007
#4
Tak, det virker!
Men nu bruger jeg kommatal i applikationen, så når jeg prøver at erstatte "int" med double, så vil den stadigvæk ikke regne med kommatal
13-06-2004
Med double er du på ingenmandsland fra min side... Har ikke tid til at skifte koden ud :) Sig goddag til typestærkt sprog :D
Nu kan man jo skrive alt hvad man vil i et tekstfelt så her er lidt kode til at håndtere
1) tjek om det *er* et tal
2) konverter tallet og brug det
public static boolean isNumber(String str) {
try {
Integer.parseInt(str);
return true;
} catch ( NumberFormatException e) {
return false;
}
}
int res=0;
if ( isNumber( felt1.getText() ) && isNumber( felt2.getText() ) ) {
try {
res = Integer.parseInt(felt1.getText());
res += Integer.parseInt(felt2.getText());
} catch ( NumberFormatException e ) {} //sker ikke da isNumber tjekker for os
nu skulle res gerne holde værdien :) husk selv at håndtere hvad der skal ske, såfremt if-blokken ikke køres (da et af felterne IKKE er en int!)
30-04-2006
Du kan gøre det med double på følgende måde. Hvis du vil give ordentlige fejlbeskeder skal du nok have flere typer exceptions.
public class test {
public static void main(String args[]) {
String nr1 = "3.14";
String nr2 = "2.67";
double res = 0.0;
try {
res = Double.valueOf(nr1).doubleValue() + Double.valueOf(nr2).doubleValue();
}
catch(Exception exc) {
System.out.println("Error");
System.exit(-1);
}
System.out.println(res);
}
}