标题:字符窜转换为浮点数
取消只看楼主
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
 问题点数:0 回复次数:5 
字符窜转换为浮点数
#include<iostream.h>
#include<string.h>
void main()
{
char *number,s[8];
int data[8];
cout<<"Input String:";
number=s;
cin>>number;
int len=strlen(number);
for(int i=0;i<len;i++)
{
data[i]=(*number)-'0';
number++;
}
for(int k=0;k<len;k++)
cout<<data[k];
cout<<endl;
}
这个程序只能将字符窜转换为整数,如果要转换为浮点数,应该怎么弄呢?
特别是那个小数点应该怎么样转换呢?
搜索更多相关主题的帖子: 点数 字符 include void string 
2006-05-17 11:39
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 
我不想用函数,希望能够通过代码实现,而不是用已有的函数
2006-05-17 18:26
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 

老兄,if (!isdigit(*pCurrent))这句话是什么意思啊?

2006-05-18 13:09
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 

老兄,能不能把你的解题思路说说呢?我不是很清楚这些算法!谢谢!

2006-05-18 22:02
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 

老兄,你的思路我已经知道的差不多了,现在的问题是:
char *number,s[8];
float fData=0.0;
float fPart=0.1;
cout<<"Input String:";
cin>>s;
number=s;
while((*number)!='\0')
{
if((*number)=='-')
{
number++;
}
else
{
if((*number)=='.')
{
number++;
fData += ((*number)-'0')*fPart;
fPart *= 0.1;
}
else
{
fData=fData*10+ (*number)-'0';//采用覆盖的方法计算
number++;
}
}
}
cout<<fData<<endl;
如果我输入的是:12.3
输出却是126.
能告诉我为什么吗?

2006-05-19 12:47
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
得分:0 

好了,老兄搞好了.谢谢!
你真是厉害啊!
算法真是厉害.
给点学习的意见吧

2006-05-19 20:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-64907-1-1.html




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

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