package step1;
public class DoubleConverter{
public boolean check(String value) {
int xsd=0;
for(int i=0;i<value.length();i++)
{
char ch=value.charAt(i);
if(i ==0 && (ch=='+' || ch=='-')) continue;
if(i !=0 && (ch=='+' || ch=='-')) {
return false;
}
if(ch=='.') {
xsd++;
continue;
}
if(ch>'9' || ch<'0' ) return false;
}
if(xsd>1) return false;
return true;
}
public double convert(String value){
double result=0.0;
value.trim();
boolean t=check(value);
if(!t)
{
return 0.0;
}
char sy=value.charAt(0);
if(sy=='+'|| sy=='-') value=value.substring(1);
int dipos=value.indexOf('.');
String zsStr="";
String xsStr="";
if(dipos<0)
{
zsStr=value;
}
else {
zsStr= value.substring(0, dipos);
xsStr= value.substring(dipos+1);
}
double zs=0.0;
int n1=1;
int n=zsStr.length();
for(int i=n-1;i>=0;i--)
{
char ch=zsStr.charAt(i);
double x=(double)(ch-'0');
x=x*n1;
n1=n1*10;
zs=zs+x;
}
double xs=0.0;
n=xsStr.length();
n1=10;
for(int i=0;i<n;i++)
{
char ch=xsStr.charAt(i);
double x=(double)(ch-'0');
//x=x*Math.pow(10,-(i+1));
x=x/n1;
n1=n1*10;
xs=xs+x;
}
result = zs+xs;
if(sy=='-') result=-result;
return result;
}
}
创建一个类(DoubleConverter),该类的作用是将一个数值字符串转换成浮点型(double)数值。