• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Java: Operanden vom Typ 'int' und Kommazahlen

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
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?
 

Thyraz

London Pepping
Registriert
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;
 

User 50673

Gast
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;

Das nennt sich dann auch einen "cast" durchführen.

:)
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
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.
 

Manthemann

Gala
Registriert
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
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
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. :)
 
Zuletzt bearbeitet: