Erste Schritte Literale / Konstanten

fsicher2016

Mitglied
Nach meinem Wissen, werden
  • die Fliesskomma-Konstanten als "double" behandelt (ohne Sufix-Angabe), während
  • Ganzzahlige Konstanten als "int" behandelt werden.
// Beispiel mit Fliesskomma-Konstanten
float a = 3.5; // Kann nicht kompiliert werden
float b = 3.5f; // Das wird akzeptiert

// Beispiel mit Ganzzahl-Konstanten
byte c = 10; // Wird akzeptiert, obwohl '10' als int gesehen werden sollte
byte d = 128; // Das geht wieder nicht!!!

Es sieht danach aus, als ob Compiler (Achtung: Compiler) den Wert überprüfen würde und merkt, dass 10 noch in ein Byte passt, während 128 nicht mehr in ein Byte passt.

Wenn dies so ist, wieso merkt der Compiler nicht, dass 3.5 auch in ein 'float' passt? Mache ich hier einen Fehler in der Überlegung?

Danke.
 
X

Xyz1

Gast
*gähn* Guten Morgen,

3.5 ist double, für 10 (int) gibt es kein byte-Literal, double darf nicht implizit in float gewandelt werden. int ist kontextabhängig. Das ist die Erklärung. Die letztliche Prüfung kann nur der Compiler, natürlich auch IDE vorher.
 

fsicher2016

Mitglied
Vielen Dank.

>> int ist kontextabhängig

Kannst du dazu etwas mehr sagen? Was heisst das? Gibt es da im Hintergrund eine "Logik", die je nach Situation anders funktioniert? Denn, wenn Compiler merkt, das int-Wert 10 in ein Byte passt, int-Wert 128 aber nicht, wäre zu erwarten, dass er auch merkt, dass double-Wert 3.5 (keine irrationale Zahl) in ein float ohne Verlust auch passt. Würde ich zumindest erwarten ...

Danke.
P.S.
Ich nutze keine IDE, um sicher zu sein, dass die IDE nicht "dazwischenfunkt".
 
X

Xyz1

Gast
Ja, richtig erkannt.
wäre zu erwarten, dass er auch merkt, dass double-Wert 3.5 (keine irrationale Zahl) in ein float ohne Verlust auch passt. Würde ich zumindest erwarten ...

Vorsichtig damit umgehen, nicht jeder double-Wert einer gewissen Range ( [ , ] ) kann verlustfrei in ein float konvertiert werden, oftmals ist das schon bei kleinen Werten nicht der Fall. Musst dir mal Fließkommadarstellung anschauen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
C Datentypen Ganzzahlige Literale Java Basics - Anfänger-Themen 3
H Literale Java Basics - Anfänger-Themen 7
K Literale: Ganze Zahlen Java Basics - Anfänger-Themen 2
E Literale Java Basics - Anfänger-Themen 4
P Was sind Literale? Java Basics - Anfänger-Themen 3
Fats Waller Wofür stehen diese Konstanten im Java Labyrinth ? Java Basics - Anfänger-Themen 5
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
thor_norsk Symbolische Konstanten Java Basics - Anfänger-Themen 9
L Konstanten Java Basics - Anfänger-Themen 7
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
Luk10 Frage zu globalen Konstanten Java Basics - Anfänger-Themen 11
T Variablen Verständnissfrage Konstanten Java Basics - Anfänger-Themen 6
S Dezimale Konstanten sind immer positiv oder null - was heisst das den genau? Java Basics - Anfänger-Themen 2
D Sind Enums typsichere Konstanten? Java Basics - Anfänger-Themen 15
M Konstanten in Java Java Basics - Anfänger-Themen 23
A Was ist performanter für Konstanten, enum oder static variablen Java Basics - Anfänger-Themen 5
C Konstanten zu einfachen Berechnungen unterhalb Main Methode Java Basics - Anfänger-Themen 19
P Klassen-konstanten durchlaufen Java Basics - Anfänger-Themen 9
S Viele Konstanten, EnumSet? Java Basics - Anfänger-Themen 3
D Frage zu Konstanten Java Basics - Anfänger-Themen 7
G static block und konstanten Java Basics - Anfänger-Themen 2
S Organisieren von Konstanten Java Basics - Anfänger-Themen 16
G Wohin mit Konstanten? Java Basics - Anfänger-Themen 12
G konstanten leicht benutzen? (sichtbarkeit) Java Basics - Anfänger-Themen 17
F Konstanten Java Basics - Anfänger-Themen 36
K System.exit() - Konstanten ? Java Basics - Anfänger-Themen 2
M Konstanten ableiten und überschreiben Java Basics - Anfänger-Themen 2
Dilandau array aus konstanten definieren? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben