In C++ können Variablen vom Typ int nur positive oder negative Ganzzahlwerte enthalten; sie können keine Dezimalwerte enthalten. Hierfür stehen Float- und Double-Werte zur Verfügung. Der Datentyp double wurde erstellt, um Dezimalzahlen mit bis zu sieben Nachkommastellen zu speichern. Die Konvertierung einer Ganzzahl in einen Double-Datentyp kann automatisch vom Compiler durchgeführt werden (sogenannte „implizite“ Konvertierung) oder sie kann vom Programmierer explizit vom Compiler angefordert werden (sogenannte „explizite“ Konvertierung). In den folgenden Abschnitten werden wir verschiedene Konvertierungsmethoden behandeln.
Der Compiler führt automatisch implizite Typkonvertierungen durch. Um dies zu erreichen, sind zwei Variablen erforderlich – eine vom Typ Gleitkomma und die andere vom Typ Ganzzahl. Wenn wir einer Ganzzahlvariablen einfach einen Gleitkommawert oder eine Variable zuweisen, kümmert sich der Compiler um alle anderen Dinge. Diese Konvertierung leidet unter Datenverlust, da Ganzzahlvariablen keine Dezimalwerte nach dem Dezimalpunkt enthalten können.
double input = <double value>; int output = input;
#include <iostream> using namespace std; int solve(double value) { int opVal = value; return opVal; } int main() { double ip = 25.3056; int op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 25.3056 The output value is: 25
Wie wir sehen können, ist der Konvertierungsprozess recht einfach. Wir weisen lediglich die Eingabevariablen den Ausgabevariablen zu; es sind keine zusätzlichen Prozeduren erforderlich. Außerdem können Sie sehen, dass der Bruchteil des Double-Werts in der Ausgabe nicht vorhanden ist.
Wenn der Programmierer den Compiler explizit anweist, einen Datentyp in einen anderen zu konvertieren, wird dies als explizite Konvertierung oder explizite Typkonvertierung bezeichnet. Es gibt zwei Möglichkeiten, dies zu erreichen: Eine besteht darin, den Datentyp während der Zuweisung explizit zu deklarieren, und die andere darin, static_cast zu verwenden. Die erste Methode haben wir bereits besprochen.
Es gibt zwei verschiedene Ausführungsmethoden. Eine davon ist eine Version im C-Stil und die andere ist eine Konvertierung im funktionalen Stil.
Der Ergebnisdatentyp wird vor der Quellvariablen angegeben und in Klammern eingeschlossen.
double input = <double value>; int output = (int) input;
#include <iostream> using namespace std; int solve(double value) { int opVal = (int)value; return opVal; } int main() { double ip = 84.4439; int op = solve(ip); cout<< "The value before conversion: " << ip << endl; cout<< "The value after conversion: " << op << endl; return 0; }
The value before conversion: 84.4439 The value after conversion: 84
Bei der Bereitstellung von Argumenten für eine Funktion deklarieren wir den Ergebnisdatentyp und schließen den Quellwert in Klammern ein.
double input = <double value>; int output = int(input);
#include <iostream> using namespace std; int solve(double value) { int opVal = int(value); return opVal; } int main() { double ip = -993.6571; int op = solve(ip); cout<< "The value before conversion: " << ip << endl; cout<< "The value after conversion: " << op << endl; return 0; }
The value before conversion: -993.657 The value after conversion: -993
Um zwischen vordefinierten Typen zu konvertieren, verwenden Sie statische Umwandlungen. Darüber hinaus ist dieser Cast, der auch explizit referenziert werden kann, für die Durchsetzung der impliziten Typkonvertierung verantwortlich.
double input = < double value>; int output = static_cast<int>(input);
#include <iostream> using namespace std; int solve(double value) { int opVal = static_cast<int>(value); return opVal; } int main() { double ip = -65.2354; int op = solve(ip); cout<< "The value before conversion: " << ip << endl; cout<< "The value after conversion: " << op << endl; return 0; }
The value before conversion: -65.2354 The value after conversion: -65
Die Konvertierung von einem Double- in einen Integer-Datentyp führt immer zu Datenverlust, da eine Integer-Variable nicht den Bruchteil einer Double-Variablen enthalten kann. Diese Konvertierungen sind nützlich, wenn wir einen Wert auf seinen unteren Grenzwert (den kleinsten ganzzahligen Wert bei einem Dezimalwert) runden müssen.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Konvertieren von Variablen vom Typ Double in den Typ int. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!