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

查看: 14078|回复: 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=&quot;123.99&quot;;
double l=atof(str);
printf(&quot;string = %s ,double = %lf\n&quot;, 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(&quot;123456.789&quot;);
这句在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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版