1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Java: Operanden vom Typ 'int' und Kommazahlen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von MrNase, 17.10.08.

  1. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Moin!

    Ich gehe grad meine ersten Schritte mit Java und stehe auf dem Schlauch. :(

    Es geht um simple Berechnungen einer Formel: 0.3 * ((50 - 30) / 100)

    Die einzige Bedingung ist: Der Ausdruck darf ausschließlich Operanden des Typs int enthalten.

    Allerdings ist die 0.3 ja vom Typ her double und wenn ich (50 - 30) / 100 rechne bekomme ich ja ebenfalls wieder eine Gleitkommazahle.


    Wie gehe ich das Problem am besten an?
     
  2. Thyraz

    Thyraz London Pepping

    Dabei seit:
    14.05.08
    Beiträge:
    2.050
    Ohne jemals mit Java in Berührung gekommen zu sein:

    Es sollte sich eine einfache Typumwandlung/-erzwingung geben wie in jeder Sprache.


    Also in der Art:
    meinIntErgebnis = (int) meineDoubleVariable /100;
     
  3. king-al

    king-al Reinette de Champagne

    Dabei seit:
    25.05.08
    Beiträge:
    422
    Das nennt sich dann auch einen "cast" durchführen.

    :)
     
  4. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Hey! Ich kann mir kaum vorstellen, dass es so gelöst werden muss. Das ist die allererste Aufgabe und müsste doch eigentlich recht simpel sein?!

    Wenn ich

    0.3 * ((50 - 30) / 100)

    mit

    0.3 * ((50.0 - 30.0) / 100.0)


    ersetze funktioniert es einwandfrei. Dann ist aber keiner der Operanten mehr vom Typ int. :(

    Selbst 0.4 mit (4 / 10) zu erstetzen scheint nicht zu gehen, die Ausgabe ist immer 0.
     
  5. Manthemann

    Manthemann Gala

    Dabei seit:
    24.03.08
    Beiträge:
    50
    Ist zwar schon lange her das ich was mit java gemacht habe,
    aber vielleicht musst du den Typ der Variable, in der du das Ergebnis speicherst
    als double deklarieren.

    Ich könnte mir auch vorstellen, das Java das immer abrundet...
    versuch mal 2,4 anstatt 0.4

    Gruß
    Manthemann
     
  6. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Ein Integer kann auch nur ganze Zahlen speichern. Alles was hinter dem Komma kommen würde ist verloren.

    MacApple
     
  7. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Moin!

    Ich hab nun beide Gleitkommazahlen jeweils mit 100 multipliziert damit sie zu ganzen Zahlen werden und dann hinterher das Ergebnis durch 10000 geteilt.
    In PHP hätte ich das Problem mit int und double mit einem Cast gelöst. Da das bislang aber noch nicht drangekommen ist musste ich mir so helfen. :D


    Das andere Problem hab ich dann auch nach ner Stunde gelöst… Manchmal sind einfache Dinge einfach einfacher wenn man drüber nachdenkt. :)
     
    #7 MrNase, 17.10.08
    Zuletzt bearbeitet: 18.10.08

Diese Seite empfehlen