C语言,Double类型数据,如何只保留小数点后6位?

jin_orchid 2012-07-24 03:45:31
如题,double类型数据0.97724961480591 ,如何保留小数点后6位数字,变成0.977249 ?
...全文
6131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
F871331679 2013-03-27
  • 打赏
  • 举报
回复
学习一楼了,但是不知道有么有更好的转换方法
jin_orchid 2012-07-24
  • 打赏
  • 举报
回复
谢谢,我要的是1楼的方法。
precious_me 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

double a=0.97724961480591;

printf("%.6f",a);

++
[/Quote]
++
赵4老师 2012-07-24
  • 打赏
  • 举报
回复
//Round(1.234,2) = 1.23
//Round(1.234,0) = 1.0
//Round(123.4,-1) = 120.0
double Round(double dVal, short iPlaces) {
double dRetval;
double dMod = 0.0000001;
if (dVal<0.0) dMod=-0.0000001;
dRetval=dVal;
dRetval+=(5.0/pow(10.0,iPlaces+1.0));
dRetval*=pow(10.0,iPlaces);
dRetval=floor(dRetval+dMod);
dRetval/=pow(10.0,iPlaces);
return(dRetval);
}

double round(double dVal, short iPlaces) //iPlaces>=0
{
unsigned char s[20];
double dRetval;

sprintf(s,"%.*lf",iPlaces,dVal);
sscanf(s,"%lf",&dRetval);
return (dRetval);
}
赵4老师 2012-07-24
  • 打赏
  • 举报
回复
引用 2 楼 的回复:
double a=0.97724961480591;

printf("%.6lf",a);
wenhong609 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

double a=0.97724961480591;

printf("%.6f",a);
[/Quote]
++
appleyk 2012-07-24
  • 打赏
  • 举报
回复
double a=0.97724961480591;

printf("%.6f",a);
baichi4141 2012-07-24
  • 打赏
  • 举报
回复
double b = ( ( int )( a * 1000000 + 0.5 ) ) / 1000000.0;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧