C++中的浮点数

#include<iostream>usingnamespacestd;voidmain(){doublea=120;floatb=120;printf("%f\n%f\... #include<iostream>
using namespace std;
void main()
{
double a=120;
float b=120;
printf("%f\n%f\n",a,b);
}

为什么输出都是120.000000 都是6个0呢?
那 double a=123.456789
输出的是123.457啊,怎么不保留6位小数

我是说为什么第1个输出120.000000,6位小数,而第2个输出123.457,只有3位,后面3位没了
展开
 我来答
huan__hai
2010-11-24 · 超过11用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:26.5万
展开全部
首先f%是按照double类型输出。编译器在将float类型参数入栈的时候,事先转换成double类型:一般有这样的情况:(1)在一个运算里既有float,又有double时,会转换成double;(2)函数参数传递的时候如果有float会转化为double;(3)特定函数输出为double,例如sqrt()等函数。个人意见,仅供参考,double和float本来就是比较让人纠结的东西
BlueWanderer
2010-11-24 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:1998万
展开全部
默认显示到小数点后六位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
softEbuy
2010-11-24 · 超过46用户采纳过TA的回答
知道答主
回答量:223
采纳率:0%
帮助的人:108万
展开全部
%f 这个可以设置输出位数的 如%6f
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
980515024
2010-11-24 · TA获得超过606个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:323万
展开全部
输出120.000000是正确的!那是因为我们的计算机32位的,如果用以前的老机器区别就能看的到!楼上说默认,其实也可以这么认为!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1024_KO
2010-11-24 · TA获得超过312个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:140万
展开全部
#include<iostream>
using namespace std;
void main()
{
double a=120;
float b=120;
// printf("%f\n%f\n",a,b);
cout << a << "\n" << b <<endl;
}

C++了就用cout吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式