| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 990 人关注过本帖
标题:求助:字符串转换为浮点数
只看楼主 加入收藏
大个
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-19
收藏
 问题点数:0 回复次数:3 
求助:字符串转换为浮点数
字符串转换为浮点数?
例如:1234567.89字符转换为相应的浮点数:1234567.89.使用atof函数不能实现呀!(因精度不够呀!)
还有别的法吗?
谢谢了!等待高手的解答!
搜索更多相关主题的帖子: 点数 字符 
2007-07-06 21:23
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

这是我自己编写的一类似于atof的函数,其实这算法还可以优化,后面没做了,你自己看看优化下。
#include"stdio.h"
void strtofloat (char s2[])
{
int i=0,j=1,z=0;
double sum=0,x=1,k=0,m=0,d,y,n;
while(s2[0]=='-'&&s2[j]!='\0'&&s2[j]!='.'){//处理如果是负整数部分
n=s2[j++]-'0';
sum=sum*10-n;}
while(s2[0]!='-'&&s2[i]!='\0'&&s2[i]!='.'){//处理如果是正整数部分
n=s2[i++]-'0';
sum=sum*10+n;}
if(s2[0]!='-')
d=i+1;
else
d=j+1;
while(s2[d]!='\0'){//处理小数部分
x=x*10;
y=(double)(s2[d++]-'0')/x;
m+=y;
++z;}
if(s2[0]=='-')//计算结果
k=sum-m;
else
k=sum+m;
printf("%0.*f",z,k);//控制输出
}
int main(void)
{
void strtofloat(char s2[]);
char s2[80];
scanf("%s",s2);
strtofloat(s2);
getch();
return 0;
}


深山苦学C语言,终年不见外面世界。
2007-07-06 21:39
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

int sscanf(const char *, const char *, ...);

2007-07-06 21:48
大个
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-19
收藏
得分:0 
谢谢了!不过我还是想要一个库函数处理它,希望大家继续为我解答!十分感谢!
2007-07-06 21:53
快速回复:求助:字符串转换为浮点数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032124 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved