Heim >Backend-Entwicklung >C++ >C++-Programm zum Konvertieren von Variablen vom Typ Double in den Typ int

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

PHPz
PHPznach vorne
2023-08-25 20:25:185713Durchsuche

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;

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;
}

Ausgabe

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.

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;

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;
}

Ausgabe

The value before conversion: 84.4439
The value after conversion: 84

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);

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;
}

Ausgabe

The value before conversion: -993.657
The value after conversion: -993

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);

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;
}

Ausgabe

The value before conversion: -65.2354
The value after conversion: -65

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen