Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

in c++ int in double konvertieren?
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> in c++ int in double konvertieren?
 
Autor Nachricht
physik-player
Full Member
Benutzer-Profile anzeigen

Anmeldungsdatum: 10.01.2011
Beiträge: 93

BeitragVerfasst am: 08 Jul 2011 - 00:03:14    Titel: in c++ int in double konvertieren?

hallo leute,

ich bin schon so richtig am verzweifeln. dieses verdammte c++ handelt so unlogisch. laut meinem handbuch ist es möglich zwei int-werte zu dividieren und den quotient als double-wert(also mit nachkommastellen) ausgeben zu lassen. genau das klappt aber nicht, der compiler gibt nur die stelle vor dem komma aus, mehr nicht Sad

hier mein programm:

#include <iostream>
using namespace std;

int main()
{
int i1,i2,error; // zur bedeutung von error siehe weiter unten
double ie;
cout<<endl;

cout<<"Geben Sie die erste Zahl ein: ";
cin>>i1;
cout<<"Geben Sie die zweite Zahl ein :";
cin>>i2;

ie=i1/i2;

cout<<endl;
cout<<"Quotient: "<<ie<<endl<<endl;

cin>>error; // aus irgendeinem Grund hat cin.get() keine Wirkung, weshalb ich dem programm vorgaukeln muss, dass ich noch etwas eingeben will, damit es sich nicht schließt.

cin.get();
return 0;

}

so, und wenn ich als erstes 13 und als zweites 5 eingeben, sollte doch wohl 2.6 ausgegeben werden, nicht wahr? genau das geschieht jedoch nicht. es erscheint nur eine 2. unlogischerweise ist die konvertierung von double zu int kein problem:/
setze ich jedoch i1 oder i2 in einen double wert, so wird auch ein double wert ausgegeben, obohl ich dennoch 5 und nicht etwa 5.0 eintippe.

bitte helft mir, dieses verdammte programm treibt mich noch in den wahnsinn Sad Sad

übrigens verwende ich c++ visual studio 2008

für jede hilfe 1000 dank
physik-player
just_phil
Senior Member
Benutzer-Profile anzeigen

Anmeldungsdatum: 23.08.2008
Beiträge: 768

BeitragVerfasst am: 08 Jul 2011 - 10:25:17    Titel:

Hallo,

das ist ganz normal. Wie Du HIER sehen kannst, wird bei einer Operation mit zwei Integern auch das Ergebnis ein Integer sein. Nun weist Du Deinen Integer-Wert einer Double-Variablen zu, wobei sich aber die Genauigkeit des schon berechneten Ausdrucks (ohne Nachkommaanteil) nicht plötzlich erhöht. Die Double-Variable kann zwar alle anderen primitiven Zahlentypen aufnehmen, das Ausgangsmaterial legst Du aber bei der Berechnung selbst, also auf der rechten Seite der Zuweisung, fest. Und da die Integer-Division 13/5 den Nachkommaanteil gar nicht berücksichtigt, ist diese Information quasi schon "verloren".

Wie Du selbst schon bemerkt hast, müsstest Du für Dein gewünschtes Ergebnis entweder eine Deiner Variablentypen anpassen oder eben ein Casting durchführen.
physik-player
Full Member
Benutzer-Profile anzeigen

Anmeldungsdatum: 10.01.2011
Beiträge: 93

BeitragVerfasst am: 08 Jul 2011 - 12:44:59    Titel:

wow danke, so eine schnelle und gute antwort hab ich nicht erwartet

jetzt hab ichs endlich gerafft nun sind auch andere probleme gewischen

vielen dank nochmal DH Very Happy
Summse
Newbie
Benutzer-Profile anzeigen

Anmeldungsdatum: 06.06.2009
Beiträge: 6

BeitragVerfasst am: 17 Jan 2012 - 03:15:21    Titel:

Hallo,

wenn du verhindern möchtest, dass dein Fenster am Ende der Ausführung schließt:

system("pause");
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> in c++ int in double konvertieren?
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum