CSKernelNumberToString.cNumberToString.pFrenchGetNumber C# (CSharp) Method

pFrenchGetNumber() private method

private pFrenchGetNumber ( double iNumber, bool bPutOne ) : String
iNumber double
bPutOne bool
return String
        private String pFrenchGetNumber(double iNumber, bool bPutOne)
        {
            String rtn = "";
            double iTens = 0;
            double iUnit = 0;
            double iNumAux = 0;
            bool bPutOneAux = false;

            if (iNumber == 100)
            {
                rtn = "Cent ";
            }
            else
            {
                if (iNumber > 100)
                {
                    iNumAux = iNumber;
                    rtn = pFrenchGetNameHundred(iNumAux) + " ";
                    iTens = pGetHundred(iNumAux);
                    bPutOne = false;
                }
                else
                {
                    iTens = iNumber;
                }
            }

            if (iTens != 0)
            {
                if (iTens >= 1 && iTens <= 16)
                {
                    bPutOneAux = bPutOne;
                    rtn = rtn + pFrenchGetNameNumber(iTens, bPutOneAux);
                }
                else
                {
                    if (iTens >= 17 && iTens <= 19)
                    {
                        rtn = rtn + "Dix " + pFrenchGetNameNumber(Math.Truncate(iTens - 10), bPutOne);
                    }
                    else
                    {
                        if (iTens == 20)
                        {
                            rtn = rtn + "Vingt";
                        }
                        else
                        {
                            if (iTens >= 21 && iTens <= 29)
                            {
                                if (iTens == 21)
                                {
                                    rtn = rtn + "Vingt et un";
                                }
                                else
                                {
                                    rtn = rtn + "Vingt " + pFrenchGetNameNumber(Math.Truncate(iTens - 20), bPutOne);
                                }
                            }
                            else
                            {
                                iUnit = pGetUnit(iTens);
                                if (!(iTens >= 70 && iTens < 80) && !(iTens >= 90))
                                {
                                    rtn = rtn + pFrenchGetNameTens(iTens);
                                    if (iUnit == 1)
                                    {
                                        rtn = rtn + " et ";
                                    }
                                    if (iUnit > 1)
                                    {
                                        rtn = rtn + " ";
                                    }
                                    rtn = rtn + pFrenchGetNameNumber(iUnit, bPutOne);
                                }
                                else
                                {
                                    rtn = rtn + pFrenchGetNameTens(iTens) + pFrenchGetNameNumber(iUnit + 10, true);
                                }
                            }
                        }
                    }
                }
            }

            return rtn;
        }