Timer Script Not Keeping Accurate Time?

I have this C# timer script and I only just noticed that for some reason it is NOT keeping accurate time. For instance in the seconds part of the timer it should change the minute number over when it reaches 60 seconds but it does not? Any clue as to why that is? Anyone.
Also in one of my previous posts I was trying to figure out how to get this timer to keep time over scene changes, so far no luck with that question either.
Here is the timer code:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class timer : MonoBehaviour {



	public Text timerLabel;
	
	private float time;


	
	void Update() {

		
		time += Time.deltaTime;
		
		var minutes = time / 60; //Divide the guiTime by sixty to get the minutes.
		var seconds = time % 60;//Use the euclidean division for the seconds.
		var fraction = (time * 100) % 100;
		
		//update the label value
		timerLabel.text = string.Format ("{0:00} : {1:00} : {2:00}", minutes, seconds, fraction);
	}

	//Reset Timer
	public void  ResetTimer(){
		time = 0;
		Debug.Log("Timer Reset");
	}

	//Stop Timer
	public void  StopTimer(){
		//Stop Timer Here

		Debug.Log("Timer Stopped");
	}
}

var minutes = Mathf.Floor(time / 60);