C++里面,强制类型转换

C++里面,两个整型变量a,ba=2,b=3,(double)(a+b)后如果输出值是5还是5.0还是5.000000.。。。?为什么我在电脑上试过了是5为什么呢?如果是... C++里面,两个整型变量a,b a=2,b=3,(double)(a+b)后 如果输出值是5还是5.0 还是5.000000.。。。?为什么
我在电脑上试过了 是5 为什么呢?
如果是c语言呢?两个整型变量a,b a=2,b=3,(float)(a+b)后 应该输出什么呢?printf(“%f”)的话,我只装vc++了 没有c
展开
 我来答
测绘二哈
推荐于2016-06-11 · TA获得超过2727个赞
知道小有建树答主
回答量:596
采纳率:0%
帮助的人:0
展开全部

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

}

aksheng
2009-03-03
知道答主
回答量:7
采纳率:0%
帮助的人:6.5万
展开全部
输出的是5,5虽然是浮点数,但是cout输出的时候默认不把小数的尾0输出的,如果要输出尾0的话,要设置cout的输出格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慎墨庄彦
2020-04-16 · TA获得超过3606个赞
知道大有可为答主
回答量:2988
采纳率:31%
帮助的人:201万
展开全部
就是可以在int
double
float之间互相转换,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cwwy8887
2009-03-03 · TA获得超过156个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:204万
展开全部
首先你要知道,double在C++里面的取值范围是double 64 15-16 -1.7*10(-308)~1.7*10(308),所以,强制转换为double类型后,以整型的形式输出,如果你强制转换为float型,范围在 32 6-7 -3.4*10(-38)~3.4*10(38)之间,那么你的结果就会以小数的形式输出了,这主要区别去你强制转换是双精度型还是单精度型,看具体的题目要求,希望对你能有所帮助,呵呵...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xixuejun
2009-03-03 · 超过19用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:31.9万
展开全部
因为你定义的是整型,如果你定义的是浮点型不就是小数了吗,至于小数后面应该要有几位,在你定义浮点型想要几位就加几位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式