判断CStrnig 字符串是否为double类型的变量

bool ISDouble(CString s)
{
//所有字符必须是数字或者小数点,负号。小数点的个数小于等于1个,负号的个数小于等于一个
int num=s.GetLength();
if(num<=0)
return false;
//小数点个数不能大于1个
int xiaoshudian=s.Replace(".",".");
if(xiaoshudian>1)
return false;
//负号个数不能大于1个
int fuhao=s.Replace("-","-");
if(fuhao>1)
return false;
//不能为数字和小数点负号之外的非字符
for(int i=0;i<num;++i)
{
if(!(s[i]=='0'||s[i]=='1'||s[i]=='2'||s[i]=='3'||s[i]=='4'||s[i]=='5'||s[i]=='6'||s[i]=='7'||s[i]=='8'||s[i]=='9'||s[i]=='.'||s[i]=='-'))
{
return false;
}
}
//如果是整数
if(xiaoshudian==0)
{
//如果是负整数
if(fuhao==1)
{
//第二位不能为0   [-0123]
if(num>1&&s[1]=='0')
{
return false;
}
}
//正整数
else
{
//第一位不能为0   [0234]
if(s[0]=='0'&&num>1)
{
return false;
}
}
}
//如果是小数
else
{
//如果是负小数
if(fuhao==1)
{
//如果是0开头的,接下来一个字符一定是小数点,并且长度大于等于3(不包括负号)
if(s[1]=='0')
{
if(!(num>=4&&s[2]=='.'))
{
return false;
}
}
//非0开头
else
{


if(s[1]=='.'||s[num-1]=='.')
{
return false;
}
}
}
//正小数
else
{
//以0开头的
if(s[0]=='0')
{
if(!(num>=3&&s[1]=='.'))
{
return false;
}
}
//非0开头的小数小不能再第一位和为后一位
else
{
if(s[0]=='.'||s[num-1]=='.')
{
return false;
}
}
}


}
return true;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值