Kommastellen angeben
-
Hallo,
ich hab ne frage. Ich hab heute nen simplen Quelltext geschrieben aber i-wie häng ich.
Hier mal der QText:
Int32 eingabe1, eingabe2;
Double ausgabe;Console::Write("Eingabe der 1. Zahl:\t");
eingabe1=Convert::ToInt32(Console::ReadLine());
Console::Write("Eingabe der 2. Zahl:\t");
eingabe2=Convert::ToInt32(Console::ReadLine());
ausgabe = eingabe1 / eingabe2;
Console::Write("Ergebnis:\t\t{0}",ausgabe);Funkt ja eigentlich.... also 4/2 = 2. Das Passt ja aber 2/4 = 0 kann ja net ganz stimmen. Kann mir wer mal schnell helfen wie ich´s machen kann das er auf 2 Kommastellen genau rechnet. Ich habs früher gewusst aber vergessen -.- Internet hat auch net geholfen...
MFG
RENE
-
2/4 ist eine Ganzzahlendivision. Die ergibt 0 Rest 2 (den Rest würdest du mit dem Modulo kriegen).
double d=2/4; //ergibt 0 d=2./4; //hier nehmen wir "2." (somit ist das ein double-Literal, kein int mehr), und es kommt erwartungsgemäß 0.5 raus
-
Danke ist diese Lösung nun richtig?
Int32 eingabe1, eingabe2;
Double ausgabe;Console::Write("Eingabe der 1. Zahl:\t");
eingabe1=Convert::ToInt32(Console::ReadLine());
Console::Write("Eingabe der 2. Zahl:\t");
eingabe2=Convert::ToInt32(Console::ReadLine());
ausgabe = eingabe1 / eingabe2;
Console::Write("Ergebnis:\t\t{0},{1}",ausgabe,eingabe1%eingabe2);Nein oder weil wenn ich 9/4 rechne kommt 2.1 raus. Aber eigentlich sollte ja 2,25 rauskommen... Kanns mir bitte wer erklären??
THX
MFG
RENE
-
Du hast doch gar nicht umgesetzt, was ich geschrieben habe. Was du nun machst, ist Folgendes: du gibst das Ergebnis von 9/4 (Ganzzahlendivision!) aus. Das ist 2. Dann gibst du ein Komma aus. Und dahinter gibst du das Ergebnis von 9%4 (Modulo, also der Rest einer Ganzzahlendivision!) aus. Das ist 1. Daher steht bei dir "2,1". Wenn du das Fließkommaergebnis der Rechnung sehen willst, sieh dir bitte noch mal ganz genau mein erstes Posting an, da steht schon längst die Lösung.
-
Danke für deine Antwort. Leider verstehe ichs immer noch net.
Aber es ist mir eingefallen wie ichs letztens geschafft habe:
**
ausgabe=Convert::ToDouble(eingabe1) / Convert::ToDouble(eingabe2);**
Somit funkt es. Trotzdem danke für deine Hilfe.
-
Ok, ich hatte das vielleicht nicht klar genug gesagt.
Merke: wenn ein Element einer Rechnung double ist, ist das Ergebnis auch double (das gleiche gilt natürlich für float). Wenn du also mit Ganzzahlen rechnen willst, aber ein Fließkommaergebnis brauchst (üblicherweise also bei der Division), dann muss lediglich eine deiner Zahlen nach double konvertiert werden, und gut is'!
int/int=int
double/int=double
int/double=double
double/double=double