Heim > Backend-Entwicklung > C++ > Hauptteil

C++-Programm zum Konvertieren von Variablen vom Typ Double in den Typ int

PHPz
Freigeben: 2023-08-25 20:25:18
nach vorne
5699 Leute haben es durchsucht

C++-Programm zum Konvertieren von Variablen vom Typ Double in den Typ int

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.

Implizite Konvertierung

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.

Grammatik

double input = <double value>;
int output = input;
Nach dem Login kopieren

Algorithmus

  • Nehmen Sie einen doppelten Wert als Eingabe;
  • Weisen Sie einer Ganzzahlvariablen einen Wert zu.
  • Ausgabe anzeigen.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

The input value is: 25.3056
The output value is: 25
Nach dem Login kopieren

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.

Explizite Konvertierung

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.

Algorithmus

  • Nehmen Sie einen doppelten Wert als Eingabe;
  • Verwenden Sie die explizite Typkonvertierung, um ganzzahligen Variablen Werte zuzuweisen.
  • Ausgabe anzeigen.

Erwähnen Sie den Datentyp bei der Zuweisung

Es gibt zwei verschiedene Ausführungsmethoden. Eine davon ist eine Version im C-Stil und die andere ist eine Konvertierung im funktionalen Stil.

C-Stil-Version

Der Ergebnisdatentyp wird vor der Quellvariablen angegeben und in Klammern eingeschlossen.

Grammatik

double input = <double value>;
int output = (int) input;
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

The value before conversion: 84.4439
The value after conversion: 84
Nach dem Login kopieren

Funktionsguss

Bei der Bereitstellung von Argumenten für eine Funktion deklarieren wir den Ergebnisdatentyp und schließen den Quellwert in Klammern ein.

Grammatik

double input = <double value>;
int output = int(input);
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

The value before conversion: -993.657
The value after conversion: -993
Nach dem Login kopieren

Verwenden Sie static_cast

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.

Grammatik

double input = < double value>;
int output = static_cast<int>(input);
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

The value before conversion: -65.2354
The value after conversion: -65
Nach dem Login kopieren

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage