Omzetten

  • Onderwerp starter Onderwerp starter neok
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

neok

Nieuwe gebruiker
Lid geworden
16 nov 2008
Berichten
4
jo,

ik moet voor 't school een project maken waar ik een omzeting moet doen van een string naar een cijfer. Ik moet dus met een string kunnen bereningen uit voeren.

Kan iemand mij helpen?
 
Wat heb je zelf al gemaakt?
Wat is je specifieke vraag over code of functies?
 
Een ingegeven String om zetten naar een cijfer om mee te kunnen rekenen
Hij compileerd maar tijdens het uitvoeren geeft hij een fout

int lengte = (ingave.length());

for (int i=0; i<=lengte; i++) {

double groep1 = ((ingave.charAt(lengte)-48) * Math.pow(10,lengte + i));
}
System.out.println(groep1);
 
Laatst bewerkt:
maar tijdens het uitvoeren geeft hij een fout

Een IndexOutOfBoundsException toevallig? Dat komt omdat je het teken op positie 'lengte' probeert op te vragen. Terwijl een string met lengte 'lengte' enkel tekens heeft op positie 0 t/m lengte-1.

Je zal dus
for (int i=0; i<=lengte; i++) {

double groep1 = ((ingave.charAt(lengte)-48) * Math.pow(10,lengte + i));

moeten vervangen door
Code:
for (int i=0; i<lengte; i++) {

    double groep1 = ((ingave.charAt(i)-48) * Math.pow(10,lengte + i));

Al zal het programma dan nog niet doen wat je wilt. Ik snap wat je hier probeert te doen, maar je moet bedenken dat je de cijfers een voor een leest. Steeds vermenigvuldigen met 10 en het ingelezen getal optellen is dus voldoende. Je moet de declaratie van groep1 dan ook voor de for lus zetten. Anders bevat groep1 slechts een cijfer en ben je hem kwijt na de lus.
 
Laatst bewerkt:
Ik moet zeggen dat ik je loop wel cooler vind, maar ik denk dat het makkelijker kan. Kijk eens naar de Double klasse van java. Die kun je hier vinden. Meestal als je het gevoel hebt dat er meer mensen hetzelfde (kleine) probleem hebben gehad, is er al een simpele oplossing te vinden in de API.

Code:
public double stringToDouble(String stringToParse) throws ParseException{
      return Double.parseDouble(stringToParse);
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan