really strange thing with "if" statment not working well

i am attaching a scrit in Js which suppose to decide if the new score is a high score or not.
at the end of the script I have and “if” statment that suppose to check if the value of the var “hightime” is equal or not to the value of “ctime”.
even though it is showing trhough the Debug.Log that the values are equal, it is behaving as if they are not.
i am also attaching a screen shot of the debug log where it shows that the valuse are the same but it prints some times “Old Highscore” - which suppose to happen only when the valuse are not the same.
I have no idea why, or what to do to fix this.
any idea will be great!

#pragma strict
var textfield:GUIText;
var hightime : float;
var levelnum : int;
var scoreFiles : TextAsset;
var thisTime : TIMER1;
var index = 0;
var scorestring : String;

levelnum = GameObject.Find("LevelCounter(Clone)").GetComponent(levelCounter).levelNum;
 
function Start () 
{
textfield = GetComponent(GUIText);
scorestring = PlayerPrefs.GetString("scoreArry");
var score : Array = scorestring.Split (","[0]);	
var j = score.length;
var time = GameObject.Find("txt-time").GetComponent(TIMER1);
var ctime = time.levelTimer;
     
    for (var i = 0; i<j; i++)
    {
       index = i;
       if (index+1 == levelnum)
       {
          var thisTime : String = score[index];
          hightime = parseFloat(thisTime);
          textfield.text = "  = " + hightime.ToString("F2");
          Debug.Log ("1. " + score[index]);
          Debug.Log ("2. " + hightime);
          Debug.Log ("3. " + ctime);
          if (   hightime == ctime)
          {
             Debug.Log ("New Highscore");
             var _bestimeNew = UIButton.create ("GFXGold.png", "GFXGold.png" ,0,0);
             _bestimeNew.positionFromBottom(0.35,-.15);
          }
          else if (  hightime < ctime)
          {
          Debug.Log ("Old Highscore");
          var _bestime = UIButton.create ("GFXGoldBW.png", "GFXGoldBW.png" ,0,0);
          _bestime.positionFromBottom(0.35,-.15);
           }
        }
     }
 }

[722-Screen+shot+2012-04-23+at+1.26.32+AM.png|722]

Am I wrong or you are doing all this in the start fct?

You are only checking once at the beginning but then in the game nothing of it is happening.

But I don’t understand the whole thing, what would be the point to check at start the highscore? you’d rather check it at the end, seems pretty logic to me.