C++中控制浮点型数据输出时小数点后的位数

今天做了一道题,其中有要求要输出像1.00(我写的这个数是double型的)这样的数,这样输出在C中很简单,但到了C++中就不好搞了,C++自动的省略了小数点后的0(我是... 今天做了一道题,其中有要求要输出像 1.00(我写的这个数是double型的)这样的数,这样输出在C中很简单,但到了C++中就不好搞了,C++自动的省略了小数点后的0(我是在VC6.0中写的),我像问下怎么写才能控制让程序输出1.00这样的数字。
感谢大家的回答!
但是问题还是没解决,我想问的是输出1.000,
cout<<setprecision(4)<<a<<endl; 可以控制输出4位有效数字,但是在输出1.000的时候还是输出的1(VC6.0).
我想要的就是在输出1.00的时候,保留小数点后面的两个零,怎么写呢??
展开
 我来答
yp68mbv
2011-03-31 · TA获得超过1891个赞
知道小有建树答主
回答量:1858
采纳率:0%
帮助的人:1774万
展开全部
tof无法提升精度。

至于楼主所希望的3位变成6位,其实数据在内存中的精度足够。
只是你输出数据的时候没有加控制符而已。
用下面例程可以输出小数点后6位的浮点数。
printf("%.6f",m_cloudPts[modalNum].x);

double的取值范围,如果小数点前的有效数字不多的话,应当可以满足小数点后9位的要求。
2.2250738585072014 E – 308
1.7976931348623158 E + 308
sunnyfulin
2011-03-30 · TA获得超过465个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:189万
展开全部
请问各位大侠:setpricision精度控制在Dev-C++是否也可行?
我对sssssss23的源码进行了测试,如果输入3.12345,则显示 3.123,但是,如果输入了3.00034,则会输出 3 其后没有小数部分,也就是说,如果结果里面的尾数为零直到精确地位数,那么后面的零连同小数点都不会显示。
我想这个不符合楼主的意图吧?
诚心请教!!期待!!我用的是Dev-C++。
追问
这还真是不符合我的想法,我就没用过Dev-C++,其实就没听说过,(丢人了,呵呵)
但是有问题大家帮忙,
只要能学到知识就好。
追答
Dev-C++只是一种不同的编译器,跟Visual C++差别应该不大吧,我对后者不是很了解,不敢妄自评论!
不存在丢人不丢人,我们只是在不同的阶段而已,要加油哦!!哈哈哈!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
社南扰龙露5m
2011-03-30
知道答主
回答量:37
采纳率:100%
帮助的人:7.7万
展开全部
例如:
#include<iostream.h>
void main(void)
{
double a=3.5,b=4.5;
cout.setf(ios::fixed);
cout<<a<<'\t'<<b<<'\n';
}
其中加入了语句“cout.setf(ios::fixed);”可以控制输出六位小数。
追问
那要是就要求输出小数点后两位的怎么办??
追答
对,
#include
using namespace std;
#include
int main()
{
double a;cin>>a;
cout<<setprecision(4)<<a<<endl; //c++精度处理 setprecision(4)中的4代表一共有4位输出
return 0;
}

sssssss23这位大虾很对,要保留n个小数,括号就填n+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sssssss23
2011-03-30 · TA获得超过494个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:272万
展开全部
#include<iostream>
using namespace std;
#include<iomanip>
int main()
{
double a;cin>>a;
cout<<setprecision(4)<<a<<endl; //c++精度处理 setprecision(4)中的4代表一共有4位输出
return 0;
}
追问
输出是四位,但是要是我输出1.000,他还是输出1,而不是输出1.000.怎解列?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Wanhui2020
推荐于2018-03-13 · TA获得超过186个赞
知道答主
回答量:137
采纳率:0%
帮助的人:27.8万
展开全部
1.头文件里加#include<iomanip>。
2.cout<<setioflags(io::fixed)<<变量<<endl;
更多追问追答
追问
问个问题.
cout<<setioflags(io::fixed)<<变量<<endl中的setioflags(io::fixed)
和cout<<setprecision(4)<<a<<endl;
当中的setprecision(4)有什么关系?
追答
你好,你的问题解决了!
setprecision(4)的意思应该是小数点后四位;
因此你把
cout。
2.cout<<setioflags(io::fixed)<< setprecision(3)<<变量<<endl;

你可以3任意改;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式