Falsches Ergebnis float-Addition

chillerStudent

Bekanntes Mitglied
Bei dem folgendem Code kommt ein falsches Ergebnis. Warum?

Java:
class Test{

	public static void main(String[] args){
				
		long g = 987654321;
		g+= 1f;
		Out.println(g);
}}
 
Zuletzt bearbeitet von einem Moderator:
Ja, aber ich hab gelernt, dass alle long Werte in float passen.
Es rechnet long + float: dabei kommt doch float als Ergebnis oder? weil es selbst das kleinere Datentyp in das entsprechende Datentyp konvertiert.
 
jeder long passt in float, nur nicht genau

987654321 ist als float vielleicht 9.87 * 10^8 oder so, paar mehr Stellen werden es schon sein, aber wenn du da ganz hinten irgendwo was änderst ist die Zahl immer noch dieselbe,
float kennt Exponenten bis jenseits aller long-Vorstellungskräfte, spart dafür exakte Stellen
 
jeder long passt in float, nur nicht genau

Ein Beispiel:

Aktuell zeigt mein Aussenthermometer +2.3 Grad an - Auch wenn die Temperatur um 1/1000 Grad steigt wird es immer noch +2.3 Grad anzeigen, auch wenn das nicht stimmt.

chilling Student ;-) - Deine Rechnung oben ist in einem ähnlichen Massstab eineGrosseZahl + eineGanzKleineZahl wird als Resultat eineGrosseZahl liefern.


(eineGrosseZahl + eineGanzKleineZahl) == eineGrosseZahl kann durchaus true sein, auch wenn die Mathematiker anderer Ansicht sind

Für die Theorie dahinter gibt es genügend Abhandlungen wie die Zahlen binär dargestellt werden.

Andi (Der eine Testfrage oder Hausaufgabe hinter der Frage wittert 🙂 )
 
Antwortende können sich mit Nebendingen beschäftigen,
du als Fragender solltest dir bei jedem Posting überlegen, neben Teilfragen auch den Hauptstand aktuell im Auge zu behalten:

ist das Thema noch offen ja/nein?
besteht irgendeine Frage?
ist irgendwas an den Antworten unklar, alle Vorschläge ausprobiert/ kommentiert?
 
Weil du glaubtest, dass es eine Testfrage oder eine Hausaufgabe wäre
Das war die Bestätigung🙂

Quoten ist keine schlechte Idee.
Meine Fage läuft darauf hinaus ob Du einfach andere deine Aufgaben lösen lassen willst oder ob du an einer konkreten Arbeit bist und ein Teilproblem lösen musst.

Ich helfe dir dabei, wenn DU etwas lernen willst - das heisst die Aktivität auf deiner Seite sollte klar ersichtlich sein - und andererseits wäre es in diesem Fall besser die Fragen im entsprechend Forum "Hausaufgaben" zu stellen

SlaterB : Thread verschieben?
 
um das weiter im Detail zu beurteilen:
Quoten wäre meiner Philosophie nach nicht nötig 😉 ,
jedes Posting bezieht sich wenn nicht anders angegeben auf das davor,
dass es eine Bestätigung war habe ich sofort erkannt, nicht falsch oder unverständlich, nur irrelevant

> SlaterB : Thread verschieben?

auch das kommentiert:
verschieben möchte ich noch nicht, da ja nichtmal eine Frage besteht,
bisher wird das float-Verhalten besprochen, das passt hier gut her, Initiative besteht sowieso, soweit man das hier verlangen kann

wenn jetzt 5 Zeilen Aufgabe + 'Lösung bitte' kommt, dann wird verschoben
 

Zurück
Oben