c语言输出保留12位有效数字??? 5

例如一个double型c[500][500]数组,怎么保留12位有效数字输出数组各元素?例如同样是6位有效数字,923.333和9.23333小数后边保留的个数是不一样的... 例如
一个double型c[500][500]数组,怎么保留12位有效数字输出数组各元素?
例如同样是6位有效数字,923.333和9.23333小数后边保留的个数是不一样的!总不能这500*500个数我一个一个去看,然后printf("%.nf")输出吧!
c语言中有这样的库函数吗?头文件是什么?我知道c++中可以!例如:cout<<setprecision(12)<<c[300][200]<<endl;但是在c语言中该怎么办呢?
第一个非0数开始到最后一位一共12位!
展开
 我来答
df601562566
2013-10-21 · TA获得超过502个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:341万
展开全部
#include <stdio.h>
int get_ncount(double num)
{
  int ncount=0;
  while(num>=1)
  {
    num/=10;
    ncount++;
  }
  return ncount; 
}
int main()
{
   double a=12.345678901234;
   double b=0.12345678901234;
   int n=get_ncount(a);
   printf("%*.*lf\n",n,12-n,a);
   n=get_ncount(b);
   printf("%*.*lf\n",n,12-n,b);
}

输出:

12.3456789012
0.123456789012

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
2013-10-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4250万
展开全部
自己做一个函数就可以了。
将double转换为char字符串,然后自己在需要的位数上面截断或补0,之后printf这个字符串就ok
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2013-10-21 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3483万
展开全部
你好!!
还是不太明白你这样做的目的是什么?
比如:923.333和9.23333,这两个数,你要拿他们做什么处理
追问
我觉得,是不是先可以判断c[i][j]绝对值大小,若大于等于1,就用printf("%12f"),若小于1就用printf("%.12f")这样应该可以??
追答
那你这样吧,取个数数的整数 int 转换;
然后判断整数的位数,然后根据整数的位数,决定小数的位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式