kostenloser Webspace werbefrei: lima-city


Java Taschenrechner

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    just4fun

    just4fun hat kostenlosen Webspace.

    Moin Moin,

    ich will/muss in Java einen Taschenrechner programieren.
    Insgesamt läuft das auch schon alles relativ rund, allerdings habe ich jetzt ein Problem. Ansich sollte der Rechner ursprünglich zwei Anzeigen haben (Eingabe & Ergebnis). Nun soll es doch nur eine Anzeige sein, in der immer die Zuletzt eingegebene Zahl (nicht der Operator) erscheint und wenn man gleich drückt, dann das Ergebnis.
    Irgendwie stehe ich momentan völlig aufm schlauch.

    Hier der Code:
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptException;
    
    
    public class BackEnd
    {
       private double ergebnis;
       private String eingabeString ="";
       private String ausgabeString ="";
    
       public BackEnd()
       {   
          ergebnis=0; 
           ausgabeString="";
           eingabeString="";
       }
    
       public void nextCommand(String inString)
       {
          
          eingabeString += inString;
          
          //Alles löschen
          if(inString.equals("delete"))
          {
             ergebnis = 0.;
             eingabeString = "";
          }
    
          
          if(inString.equals("="))
          {
             eingabeString = eingabeString.substring(0, eingabeString.length()-1); //Gleichzeichen sofort wieder entfernen
             
             String formel = eingabeString;
             
             ScriptEngineManager factory = new ScriptEngineManager();
               ScriptEngine engine = factory.getEngineByName("JavaScript");
    
              
               try 
               {
                   engine.eval("var v = eval("+formel+")");
                   double b =(Double) engine.get("v");
                  
                   ergebnis = b;
    
                         System.out.println("Ergebnis: "+b);
                } catch (ScriptException e) 
                {
                   System.out.println("Das war wohl nix");
                   e.printStackTrace();
                }       
                      
          } 
     
       }
       
       
       
    
       public String getEingabeString()
       {
             System.out.println("\nEingabe-String = "+eingabeString);  
             
                int stellen = 8;                   //Stellen auf die das Ergebnis gerundet wird
              double factor = Math.pow(10, stellen);   //Faktor für die Rundung
              boolean keinKommaNull;
    
              // Zahl mit 100 multiplizieren, dann runden, anschliessend wieder durch 100 teilen
    
              double gerundeteZahl = Math.round(ergebnis * factor) / factor;
             
              String erg = String.valueOf( gerundeteZahl );
                System.out.println("\nErgebnis-String = "+erg.toString());
                ausgabeString = erg;
                if(keinKommaNull = ausgabeString.endsWith(".0"))
                {
                   ausgabeString = ausgabeString.substring(0, ausgabeString.length()-2);
                   return ausgabeString;
                }
                else
                {
                	return ausgabeString;
                }
       }
          
    }


    Vielen Dank!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. w**s

    Leider verstehe ich Dein Problem nicht?!

    Könntest Du das 'mal etwas näher beschreiben?

    &greetinx;
    WS
  4. Autor dieses Themas

    just4fun

    just4fun hat kostenlosen Webspace.

    Ich habs selber grade gelöst, war vorhin nur einfach n bisschen blöd...

    Versuche es trotzdem nochmal zu erklären:
    es gab zwei Strings die getrennt voneinander Ein- und Ausgabe zurückgaben.
    Ich wollte nun, dass es nur noch eine Ausgabe zurückgegeben wird. Also solange ich nicht gleich drücke immer die zuletzt eingegebene Zahl und wenn man dann gleich drückt das Ergebnis.

    Weiß nicht, ob das jetzt verständlicher war, ich glaube man müsste es einfach sehen :)
    Auf jeden Fall funktioniert es jetzt!
  5. mit welchem Programm machst du bzw nutzt du für Java Anwendungen??
    ich hab eclipse
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!