前言:
本文主要讲解在C++中的类型转换。
一,带入到长度较大的类型中。
在C++中,变量不仅有整数,也有浮点型,整数是没有小数部分的,而浮点型有,所以,浮点数长度比整数大。
观察下列代码:
#include <iostream>
using namespace std;
int main()
{
int a=12;//声明整数变量并赋值。
double b;//声明浮点变量。
b=a;//整数变量a的值赋给浮点变量b。
cout << "整数变量a="<<a<<"\n";
cout << "浮点变量b="<<b<<"\n";
return 0;
}
这段代码将int型变量代入到double中,int型变量也随之转变成了double型。
虽然double型变量的输出没有表名小数部分,但其已经由int型转变成了double型,多出来的小数部分被隐藏但仍然存在。
一般在C++中可以将长度较小的类型的值带入到长度类型较大的类型的变量中的操作。
二,带入到较小的类型中。
#include <iostream>
using namespace std;
int main()
{
int a;//声明整数变量。
double b=1.23;//声明浮点变量并赋值。
a=b;//将浮点变量a的值赋给整数变量b。
cout << "整数变量a="<<a<<"\n";
cout << "浮点变量b="<<b<<"\n";
return 0;
}
运行结果为:
可以看到,上述代码将double型变量带入到int型变量中,此时会将小数部分舍去,且不满足满五进一,仅保留整数部分。
三,类型转换运算符。
在进行类型转换时,可以使用类型转换符来记录进行了怎样的转换。
语法:
(类型)表达式
具体使用:
#include <iostream>
using namespace std;
int main()
{
int a=10;//声明整数变量并赋值。
double b=1;//声明浮点变量。
b=(int)a;//整数变量a的值赋给浮点变量b,制定了想要转换的类型。
cout << "整数变量a="<<a<<"\n";
cout << "浮点变量b="<<b<<"\n";
return 0;
}
输出:
四,使用不同类型践行运算。
观察以下代码:
#include <iostream>
using namespace std;
int main()
{
int a=10;//声明并赋值整数变量a=10;
double b=13.45;//声明并赋值浮点数变量b=13.45;
cout << "a*b=" << a*b << "\n";//输出a*b的值。
return 0;
}
输出:
可以看到,上述代码在运行int型变量与double型变量相乘时,最后输出的结果为double型,一般而言,C++中使用不同类型的操作数时,会遵循将一边的操作数转换为长度较大的类型(自动将长度较短的int型转换为长度大的double型)进行运算,最后输出也是按照较大的类型进行的输出。
五,使用相同类型进行运算。
观察以下代码:
#include <iostream>
using namespace std;
int main()
{
int a=2;//声明并赋值整数变量a。
int b=3;//声明并赋值整数变量b。
double c;//声明一个double类型的变量c。
c=a/b; //将a除以b的结果赋值给c。
cout<<c;//输出c的值。
return 0;
}
输出:
并没有得到想要输出的值,因为都是以int型变量进行运算,最后结果为0.6循环,自动舍去了小数点后的部分所以输出0。
此时,可以将第八行代码改为:
c=(double)a/(double)b; //将a除以b的结果赋值给c。
输出:
若想得到double型结果,需要将a或b中至少一个转化为double型。
因,运算时要注意操作数的类型。