51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2558|回复: 10
打印 上一主题 下一主题

[原创] lr的atof()函数有问题,请大家慎用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-6-9 09:05:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lr的atof()函数有问题,请大家慎用
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-6-9 09:12:17 | 只看该作者
说说怎么回事,atof不是C的函数吗
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-6-9 10:03:45 | 只看该作者
float x;
     char *s = "7.2339 by these hilts or I am a villian else";

     x = atof(s);
     /* The %.2f formatting string limits the output to 2 decimal places */
     lr_output_message("%.2f", x);

应输出:7.23  
实际输出为:1244128.00(此值各个机器运行结果可能不同)
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-6-9 11:03:44 | 只看该作者
我也遇到过同样的问题,atof函数在C编译器下也有问题,实际上它返回的类型是double类型,在win32的计算机下,double和float是一样的效果,所以需要将返回类型定义为double类型,但是在lr下无论如何都有问题的!!

[ 本帖最后由 snowflake 于 2006-6-9 11:05 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-6-9 11:20:21 | 只看该作者

atof

原帖由 fish_yy 于 2006-6-9 10:03 发表
float x;
     char *s = "7.2339 by these hilts or I am a villian else";

     x = atof(s);
     /* The %.2f formatting string limits the output to 2 decimal places */
     lr_output_ ...




加上    double atof(const char *string);

输出结果就是7.23了

[ 本帖最后由 yanleismile 于 2006-6-9 11:22 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-6-9 11:31:36 | 只看该作者
果然为:Action.c(10): 1244128.00
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-6-9 11:35:56 | 只看该作者
float x;
     char *s = "7.2339 by these hilts or I am a villian else";
     double atof(const char *string);
     x=atof(s);
     /* The %.2f formatting string limits the output to 2 decimal places */
     lr_output_message("%.2f", x);

还是象yanleismile 说的,加上atof的函数原形就对了,返回类型是double类型,不明白为什么要这样,难道不可以直接调用
吗?呵呵sdlkfj8
以下是输出结果:
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(10): 7.23
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

[ 本帖最后由 snowflake 于 2006-6-9 11:42 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-6-9 14:54:36 | 只看该作者
Note: The function atof, as with all functions that do not return an integer, must be explicitly declared in Vugen scripts.
注意:对于所有不能返回整型的函数,LR要求必须显示声明。
如:atof,atol,strtol,sin,cos

[ 本帖最后由 梦醒十分 于 2006-6-9 15:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-6-9 15:24:01 | 只看该作者
原来如此,又学了一招,谢谢 yanleismile、梦醒十分  等前辈
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-5-26 14:05:50 | 只看该作者
有用,谢谢楼上的讨论。。。。pow()函数也是如此。。。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2011-5-26 14:55:09 | 只看该作者
都是高手啊。学习了。。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 18:54 , Processed in 0.073892 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表