浮点值转换成int"/>
浮点值转换成int
首先,将19.99和11.99相加,结果为31.98。将这个值赋给int变量auks时,它被截短为31。但在进
行加法运算之前使用强制类型转换时,这两个值将被截短为19和11,因此bats和coots的值都为30。最
后的cout语句使用强制类型转换将·个char类型的值转换为int,然后显示它。这样,cout将把值打印为
整数,而不是字符。
该程序指出了使用强制类型转换的两个原因。首先,可能有一些值被存储为double类型,但要使用它
们来计算得到 ·个int类型的值。例如,可能要用浮点数来对齐网格或者模拟整数值(如人口)。程序员可
能希望在计算时将值视为int,强制类型转换允许直接这样做。注意,将值转换为int,然后相加得到的结
果,与先将值相加,然后转换为int是不同的,至少对于这些值来说是不同的。
程序的第部分指出了最常见的使用强制类型转换的原因 -- 使一种格式的数据能够满足不同的期望。
例如,在程序清单3.14中,char变量ch存储的是字母Z的编码。将cout用于ch将显示字符Z,因为ch的
类型为char。但通过将ch强制转换为int类型,cout将采用int模式,从而打印存储在ch中的ASCII码。
#include <iostream>
int main()
{using namespace std;int auks,bats,coots;//the following statement adds the values as double,//then converts the result to intauks=19.99+11.99;//these statements add values as intbats=(int)19.99+(int)11.99; //old C syntaxcoots=(int)19.99+int(11.99);//new C++ yntaxcout<<"auks="<<auks<<",bats="<<bats;cout<<",coots="<<coots<<endl;char ch='Z';cout<<"The code for"<<ch<<"is"; //print as charcout<<int(ch)<<endl;return 0;
}
更多推荐
浮点值转换成int
发布评论