Spawner should spawn 5 but...

I have an enemy spawner with a script that decides when it should spawn. It should only spawn 5 enemys for the first wave. But it spawns six. Can anyone tell me what I am doing wrong?

public GameObject enemyPrefab;
	//Will be used to tell the spawner what enemy to instantiate

	public int maxEnemyOnScreen = 32;
	//Used to set the max number of enemys allowed on the screen at any point in time

	public float numberOfEnemyMultiplier;
	//Used to multiply the last total number of enemys to make a new total number of enemys

	public float numberOfEnemyLeftInWave;
	//The number of enemys left before next wave starts

	float totalNumberOfEnemyInWave;
	//The total number of enemys in the curent wave

	bool newWave;
	//A bool is either true or false look below to see how it is used.

	int waveNumber = 1;
	//What wave the player(s) are at

	int numberOfEnemyCurrentlyOnScreen;
	//The number of enemys currently instantiated

	GameObject curEnemy;

	// Use this for initialization
	void Start () 
	{
		totalNumberOfEnemyInWave = 5;
		//Set the first wave to have 5 enemys

		numberOfEnemyLeftInWave = totalNumberOfEnemyInWave;
		//Set number of enemy left in wave to total number of enemy in wave

	}
	
	// Update is called once per frame
	void Update () 
	{
		if(newWave)
		//If newWave is equal to true
		{
			totalNumberOfEnemyInWave = totalNumberOfEnemyInWave * numberOfEnemyMultiplier;
			//multiply total by the multiplier

			numberOfEnemyLeftInWave = totalNumberOfEnemyInWave;
			//reset the number of enemy left in wave to the new total number of enemy in wave

			waveNumber ++;
			//Adds one to the waveNumber

			newWave = false;
			//set newwave back to false
		}

		if(numberOfEnemyCurrentlyOnScreen < maxEnemyOnScreen && numberOfEnemyLeftInWave > 0 && numberOfEnemyCurrentlyOnScreen <= numberOfEnemyLeftInWave)
		//If the number of current enemys is less than the max AND number of enemys left in wave is greater than 0 AND number of enemy currently on screen is less than or equal to number of enemy left in wave
		{
			GameObject enemyClone = Instantiate(enemyPrefab) as GameObject;
			enemyClone.transform.position = gameObject.transform.position;
			numberOfEnemyCurrentlyOnScreen ++;

		}

		if(numberOfEnemyLeftInWave <= 0)
		//if the number of enemy left in wave is less than or equal to 0
		{
			newWave = true;
			// new wave equals true
		}
	}

I commented everything because I am trying to help teach other people in my group how to script.

It’s most likely this condition:

numberOfEnemyCurrentlyOnScreen <= numberOfEnemyLeftInWave

You spawn a new enemy as long as this condition is true. Since you used “less or equal” you always spawn one more when you actually reached your desired count. Use just “less”

numberOfEnemyCurrentlyOnScreen < numberOfEnemyLeftInWave