你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 14076|回复: 10

字符串转数字函数?? 【悬赏问答】

[复制链接]

4

主题

8

回帖

0

蝴蝶豆

新手上路

最后登录
2020-10-28
发表于 2012-8-6 15:13:49 | 显示全部楼层 |阅读模式
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,而小数部分没有?
望高人指点!!
回复

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-8-6 16:58:36 | 显示全部楼层

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;
}
回复 支持 反对

使用道具 举报

15

主题

99

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-8-7 09:18:50 | 显示全部楼层

RE:字符串转数字函数??

好东西!谢谢
回复 支持 反对

使用道具 举报

4

主题

8

回帖

0

蝴蝶豆

新手上路

最后登录
2020-10-28
 楼主| 发表于 2012-8-7 10:15:02 | 显示全部楼层

RE:字符串转数字函数??

现在主要问题是
a1=atof("123456.789");
这句在pc机上用c/c++编译执行 a1的结果是正确的,
而在用MDK编译执行 a1的结果就是没有小数部分!
double l=atof(str);
这样用MDK编译执行 l的结果也没有小数部分!
回复 支持 反对

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-8-7 12:31:12 | 显示全部楼层

RE:字符串转数字函数??

把你的变量使用 __align(8) double a1;这样定义看看是否正确.
 
我在MDK下使用的atof函数就没有出现你的那种问题....
 
如果还不行就按下面的方式试试..
 
3.JPG
回复 支持 反对

使用道具 举报

1

主题

39

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-8-8 17:47:45 | 显示全部楼层

RE:字符串转数字函数?? 【悬赏问答】

没出现过这个问题。
回复 支持 反对

使用道具 举报

24

主题

591

回帖

0

蝴蝶豆

中级会员

最后登录
2020-12-2
发表于 2012-8-9 20:51:16 | 显示全部楼层

RE:字符串转数字函数?? 【悬赏问答】

编译器不同造成的吧。
回复 支持 反对

使用道具 举报

7

主题

78

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-8-13 10:34:12 | 显示全部楼层

RE:字符串转数字函数?? 【悬赏问答】

只能看到部分函数,你看是不是你函数的返回类型是int而不是double类型所造成的
回复 支持 反对

使用道具 举报

7

主题

62

回帖

0

蝴蝶豆

新手上路

最后登录
2020-6-1
发表于 2012-8-17 15:02:05 | 显示全部楼层

RE:字符串转数字函数?? 【悬赏问答】

一般我的处理方式是,为了获取比较好的数据,比如有三位小数的话,结果乘以1000,呵呵不然计算起来太烦了
回复 支持 反对

使用道具 举报

0

主题

15

回帖

0

蝴蝶豆

新手上路

最后登录
2019-2-20
发表于 2012-8-18 09:56:58 | 显示全部楼层

RE:字符串转数字函数?? 【悬赏问答】

PC平台和STM32的架构,一个X86,一个ARM架构,你如果想看看在ARM架构什么结果的话,在LINUX下用ARM-LINUX-GCC来编译下,看看啥结果,这样就最准确了,MDK这个集成开发环境的话,你或许能从反汇编找原因
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版