C++里面,强制类型转换
我在电脑上试过了 是5 为什么呢?
如果是c语言呢?两个整型变量a,b a=2,b=3,(float)(a+b)后 应该输出什么呢?printf(“%f”)的话,我只装vc++了 没有c 展开
C++程序的运行结果是5,虽然使用强制类型转换后5已经是浮点实型了,但是由于在C++中的输出语句cout输出时的默认格式是不输出小数尾0的,但是在C语言中就是输出5.000000,如果要输出尾0的话,要设置cout的输出格式。
假设你想输出5.00,则就需要使用格式控制符fixed、showpoint、setprecision() 的啦,但是此时不许包含头文件<iomanip.h>,现在把源程序附于此:
#include <iostream>
#include<iomanip>
using namespace std;
int main ()
{
int a=2,b=3;
double d;
d=(double)(a+b);
cout<<fixed<<showpoint<<setprecision(2)<<d<<endl;
return 0;
}
程序的运行结果如下图所示:
如果是在C语言中的话,采用printf(“%f”)输出的话,输出结果为5.00000,如果想要输出5.00的话就把输出语句改为printf("%0.2f"); 就可以了的啦哈!!C语言的输出会是按照格式控制符来输入和输出的。
要输出5.00的C语言程序的源程序如下:
#include <stdio.h>
void main ()
{
int a=2,b=3;
float d;
d=(float)(a+b);
printf("%0.2f\n", d);
}
double
float之间互相转换,