字符串转数字函数?? 【悬赏问答】
atof(将字符串转换成浮点型数)相关函数
atoi,atol,strtod,strtol,strtoul
表头文件
#include
定义函数
double atof(const char *nptr);
函数说明
atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值
返回转换后的浮点型数。
#include
double a1;
double b1;
int JS()
{
a1=atof("123456.789");
b1=123456.789;
}
MDK编译 STM32 MCU
为何a1的结果只有整数部分123456,而小数部分没有?
望高人指点!!
RE:字符串转数字函数??
你有没有做 8字节对齐呢.好像你还有几个头文件没有包含...atof 参数 是指针形式的
#include
#include
int main(void)
{
char *str="123.99";
double l=atof(str);
printf("string = %s ,double = %lf\n", str, l);
return 0;
}
RE:字符串转数字函数??
好东西!谢谢:lol:LRE:字符串转数字函数??
现在主要问题是a1=atof("123456.789");
这句在pc机上用c/c++编译执行 a1的结果是正确的,
而在用MDK编译执行 a1的结果就是没有小数部分!
double l=atof(str);
这样用MDK编译执行 l的结果也没有小数部分!
RE:字符串转数字函数??
把你的变量使用 __align(8) double a1;这样定义看看是否正确.我在MDK下使用的atof函数就没有出现你的那种问题....
如果还不行就按下面的方式试试..
RE:字符串转数字函数?? 【悬赏问答】
没出现过这个问题。:oRE:字符串转数字函数?? 【悬赏问答】
编译器不同造成的吧。:DRE:字符串转数字函数?? 【悬赏问答】
只能看到部分函数,你看是不是你函数的返回类型是int而不是double类型所造成的:)RE:字符串转数字函数?? 【悬赏问答】
一般我的处理方式是,为了获取比较好的数据,比如有三位小数的话,结果乘以1000,呵呵不然计算起来太烦了RE:字符串转数字函数?? 【悬赏问答】
PC平台和STM32的架构,一个X86,一个ARM架构,你如果想看看在ARM架构什么结果的话,在LINUX下用ARM-LINUX-GCC来编译下,看看啥结果,这样就最准确了,MDK这个集成开发环境的话,你或许能从反汇编找原因
页:
[1]