有符号有前置零和后置零的小数比较大小
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string a,b;
int main() {
while(cin>>a>>b)
{
int s=0,fa=1,fb=1;
if(a[0]=='-'){fa=-1;a.erase(0,1);}
if(b[0]=='-'){fb=-1;b.erase(0,1);}
while(a[0]=='0'&&a.size()>1&&a[1]!='.')a.erase(0,1);///去前置零
for(int i=a.size()-1;i>=0;i--)
{
if(a[i]=='0'&&i!=0)a.erase(i,1);
else break;
}///去后置零
int lena=a.size();
if(a[lena-1]=='.'){a.erase(lena-1,1);lena--;}///易错点
while(b[0]=='0'&&b.size()>1&&b[1]!='.')b.erase(0,1);
for(int i=b.size()-1;i>=0;i--)
{
if(b[i]=='0'&&i!=0)b.erase(i,1);
else break;
}
int lenb=b.size();
if(b[lenb-1]=='.'){b.erase(lenb-1,1);lenb--;}
///去0完成
//cout<<a<<" "<<b<<endl<<fa<<" "<<fb<<endl;
int flag=1;
if(lena!=lenb)flag=0;
else
{
for(int i=0;i<=lena;i++)
{
if(a[i]!=b[i]){flag=0;break;}
}
if(flag==1)
{
if(fa!=fb)flag=0;
if(a=="0"&&b=="0")flag=1;///+0 == -0
}
}
if(flag)cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}