Kann man integer Werte in Java mit Double werten verrechnen ohne zu casten zB int a =10 und Double b = 3.0 mit der Rechnung a*b?
4 Antworten
Nein. Wenn du es so machst, castet es automatisch zu double.
Das ist offensichtich, weil Kommazahlen und Integer in einem ganz anderen Format sind.
Hab da eine Aufgabe wo es noch Double c = 2.0 gibt und die aufgAbe: c++ - a * b und ich soll das Ergebnis ausgeben. Soll ich das rechnen und sagen dass es dann ein Double ist wegen Auto cast oder sagen keine Lösung weil geht nicht
Eigentlich kann man keine Ints gegen Floats casten. Es sind völlig verschiedene Arten der Datendarstellung.
Java macht solche Dinge „implizit“, weil viele Programmierer gerne die Dinge „einfach“ haben, anstatt sich schon bei der Programmplanung tiefergehende Gedanken zu machen. Schließlich stimmt doch da was nicht … :-)
Siehe
http://stackoverflow.com/questions/4097694/float-int-implicit-conversion
Ja, aber das Ergebnis ist ein Double und lässt sich ohne expliziten cast nicht einem Integer zuweisen.
Korrekt. Man hat hier drei Antwortmöglichkeiten, die dummerweise auch noch von den Compiler-Einstellungen abhängen (je nachdem, welcher Compiler verwendet wird).
1. Geht nicht, wenn Autoboxing deaktiviert ist (das ist der Begriff für großes in kleines double usw.)
2. Geht nicht, wenn implizites casten aktiviert ist
3. geht, wenn explizit gecasted wird bzw. wenn implizites casten möglich ist mit Ergebnis-Datentyp double.
Das ist dann ein impliziter (automatischer) Cast, das Ergebnis wäre 30.0 als double
Hab da eine Aufgabe wo es noch Double c = 2.0 gibt und die aufgAbe: c++ - a * b und ich soll das Ergebnis ausgeben. Soll ich das rechnen und sagen dass es dann ein Double ist wegen Auto cast oder sagen keine Lösung weil geht nicht