lr的atof()函数有问题,请大家慎用
lr的atof()函数有问题,请大家慎用 说说怎么回事,atof不是C的函数吗 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(此值各个机器运行结果可能不同) 我也遇到过同样的问题,atof函数在C编译器下也有问题,实际上它返回的类型是double类型,在win32的计算机下,double和float是一样的效果,所以需要将返回类型定义为double类型,但是在lr下无论如何都有问题的!!
[ 本帖最后由 snowflake 于 2006-6-9 11:05 编辑 ]
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 编辑 ] 果然为:Action.c(10): 1244128.00 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 编辑 ] 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 编辑 ] 原来如此,又学了一招,谢谢 yanleismile、梦醒十分等前辈 有用,谢谢楼上的讨论。。。。pow()函数也是如此。。。 都是高手啊。学习了。。。。
页:
[1]