免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 14446 | 回复: 41
打印 上一主题 下一主题

[函数] 关于函数返回double类型的疑问!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-29 19:49 |只看该作者 |倒序浏览
我有函数,是返回double类型的
我的意思是要通过函数返回double变量,是不是用指针带出来较好,而不是用函数返回值的方式!!!
一下函数功能是返回指定小数点后面保留几位,还要四舍五入
double  indata  为要被转换的数据
int       len         为小数点后保留几位

比如:100.881  精确2位为  100.88
         100.885                    100.89
//我想给变量a赋值
方法一:
double  dround(double indata,int  len)
{

   double  oo;
    ...........
   //经过转换后的保留精确位的临时变量  oo

    return   oo;
}   

int main()
{
     double   a,b;
   
    ........
     a=dround(b,2);
     printf("a=[%lf]\n",a);  //这里a结果是个没有初始化的值
    printf("[%lf]\n",dround(b,2));  //这里结果却是对的
    return 0;
}
以上这种写法是否欠妥啊,是不是要改成以下写法较好。
方法二:
double  dround(double indata,int  len,double *outdata)
{

   double  oo;
    ...........
   //经过转换后的保留精确位的临时变量  oo
   
    *outdata=oo  ;
    return   oo;
}   

int main()
{
     double   a,b;
   
    ........
     dround(b,2,&a);
     printf("a=[%lf]\n",a);
    return 0;
}

[ 本帖最后由 jsrdcy 于 2007-5-8 23:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-04-29 19:54 |只看该作者
%lf
如果不是溢出,大概就是这个原因。具体请查书。

论坛徽章:
0
3 [报告]
发表于 2007-04-29 19:55 |只看该作者
原帖由 antigloss 于 2007-4-29 19:54 发表
%lf
如果不是溢出,大概就是这个原因。具体请查书。

         Modifier    e, E, f, F, g, G
         l (ell)     double (ignored: same behavior as without it)
         L           long double


所以应该不是这个。
请问楼主的疑问在哪里?能否用清晰、简洁的现代汉语表达一下?

.

论坛徽章:
0
4 [报告]
发表于 2007-04-29 20:03 |只看该作者
l (ell)     double (ignored: same behavior as without it)

原来还有这个定义啊,受教了。之前还一直以为是没定义。

论坛徽章:
0
5 [报告]
发表于 2007-04-29 20:03 |只看该作者
我的意思是要通过函数返回double变量,是不是用指针带出来较好,而不是用函数返回值的方式!!!


没有这种说法。

.

论坛徽章:
0
6 [报告]
发表于 2007-04-29 20:04 |只看该作者
原帖由 antigloss 于 2007-4-29 20:03 发表

原来还有这个定义啊,受教了。之前还一直以为是没定义。


这是个生动的例子,阐释了经常翻阅 man pages 有多么重要。
谢谢你的参与。

.

论坛徽章:
0
7 [报告]
发表于 2007-04-29 20:07 |只看该作者
我指的在某种情况下,用函数返回值的方式,是不是会出错,感觉就aa=xxx(..);这种形式不能给aa赋值,这个跟函数返回的是临时变量有关系吗?

论坛徽章:
0
8 [报告]
发表于 2007-04-29 20:08 |只看该作者
原帖由 jsrdcy 于 2007-4-29 20:07 发表
感觉就aa=xxx(..);这种形式不能给aa赋值

不可能吧。怎么感觉出来的?

论坛徽章:
0
9 [报告]
发表于 2007-04-29 20:08 |只看该作者
请再看帖子,开始可能写错了函数名!!谢谢!!

论坛徽章:
0
10 [报告]
发表于 2007-04-29 20:11 |只看该作者
请说说在什么情况下会出现你所说得不能赋值的现象?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP