C++程序将int变量转换为double


C++中的Int类型变量用于存储正数或负整数,但此类型无法存储小数。为此,存在float和double值。Double数据类型专门设计用于存储小数点后最多七位的小数。整数和double变量之间的转换可以由编译器自动处理,称为“隐式”转换,也可以由程序员显式触发到编译器。我们将在以下部分讨论不同的转换方式。

隐式转换

隐式类型转换由编译器自动完成。为此,我们取两个变量;一个为整数类型,另一个为浮点类型。然后,我们只需将整数值或变量赋给浮点变量,其余所有操作都将由编译器处理。

算法

  • 将整数值作为输入。
  • 将该值赋给double变量。
  • 显示输出。

语法

int input = <integer value>;
double output = input;

示例

#include <iostream> using namespace std; double solve(int value) { double opVal = value; return opVal; } int main() { int ip = 25; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }

输出

The input value is: 25
The output value is: 25

我们可以看到转换过程非常简单。我们不需要执行任何特殊操作;我们只需将输入变量赋给输出变量。

显式转换

当程序员专门指示编译器将一种数据类型转换为另一种数据类型时,就会发生显式转换。这可以通过两种方式完成,一种是在赋值期间提及数据类型,另一种是使用static_cast。我们首先描述第一种方法。

算法

  • 将整数值作为输入;
  • 使用显式强制转换为布尔值,将该值赋给double变量。
  • 显示输出。

赋值期间提及数据类型

这也可以通过两种不同的方式完成。一种是C风格版本,另一种是函数风格转换。

C风格版本

我们在源变量或括号内包含的值之前提及结果数据类型。

语法

int input = <integer value>;
double output = (double) input;

示例

#include <iostream> using namespace std; double solve(int value) { double opVal = (double) value; return opVal; } int main() { int ip = 35; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }

输出

The input value is: 35
The output value is: 35

函数风格转换

我们像传递参数给函数一样,提及结果数据类型并将源值括在括号内。

语法

int input = <integer value>;
double output = double(input);

示例

#include <iostream> using namespace std; double solve(int value) { double opVal = double(value); return opVal; } int main() { int ip = 45; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }

输出

The input value is: 45
The output value is: 45

使用static_cast

语法

int input = <integer value>;
double output = static_cast<double>(input);

示例

#include <iostream> using namespace std; double solve(int value) { double opVal = static_cast<double>(value); return opVal; } int main() { int ip = 55; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }

输出

The input value is: 55
The output value is: 55

从最后三个示例中,我们可以看到显式转换过程几乎相同,无论我们使用static_cast、C风格转换还是函数风格转换。在这三种情况下,我们都必须在赋值之前提及结果数据类型。

结论

介绍了几种将整数转换为double值的方法。程序员必须确定哪种转换方法最适合特定情况,因为不同的转换场景需要不同的转换方法。但是,由于隐式转换是自动执行的,因此程序员不必担心执行复杂的策略。

更新于: 2022年10月19日

11K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告