witajcie, potrzebuję porównywać liczby( stringi -> l. zmiennoprzecinkowe (dziesiętne) ) ale mam problem z napisaniem odpowiedniego algorytmu z warunkami... sam algorytm niby nie trudny ale problemy pojawiają się gdy liczby mają zły format i nie za bardzo wiem jak sobie z tym poradzić

przykład na operatorze<, zmienne *this i other

 
    if(signFlag==true && other.signFlag==false) //-4 < 2
        return true;
    else if(signFlag==false && other.signFlag==true) //4 < -2
        return false;
    else
    {
        if(dotPos<other.dotPos)
            fillBeginWithZeros(other.dotPos-dotPos); //wypełniam początek zerami w przypadku gdy *this=20 i other=101
        register int i=firstNonZeroNumber(), j=other.firstNonZeroNumber();
        register int k=dotPos-i, l=other.dotPos-j;
        if(k<l)
            return true;
        else if(k>l)
            return false;
        else
        {
            for(; i<dotPos && j<other.dotPos; ++i, ++j)
            {
                if(number[i]<other.number[j])
                    return true;
                else if(number[i]>other.number[j])
                    return false;
            }
            for(i=dotPos+1, j=other.dotPos+1; i<number.size() && j<other.number.size(); ++i, ++j)
            {
                if(number[i]<other.number[j])
                    return true;
                else if(number[i]>other.number[j])
                    return false;
            }
            register int sizeOfNumber=number.size()-(dotPos+1);
            if(sizeOfNumber<(other.number.size()-(other.dotPos+1)))
                return true;
            else if(sizeOfNumber>(other.number.size()-(other.dotPos+1)))
                return false;
            else
                return true;
        }
    }

takie coś zadziała gdy mam 010 i 101 ale 0010 i 101 już nie. Co posiadam -> number.size() czyli rozmiar całego stringa, dotPos przechowujący pozycję kropki w stringu a także signFlag które mówi czy liczba jest dodatnia czy ujemna. Każda wpisywana liczba otrzymuje ".0" nawet jeżeli jest całkowita. Liczby (znaki w stringu) nie posiadają "-". Może uda się komuś coś podpowiedzieć jak to zrobić żeby działało dla różnych formatów liczb..

EDITKA: Podmieniłem kod - wygląda na to, że tak sobie poradziłem -> jak dotąd nie znalazłem błędnego wyniku ale może nie spełnia to wszystkich warunków, będę dalej testował.