Instantiate not working in an IF statement.

using UnityEngine;
using System.Collections;

public class TileManagerScript : MonoBehaviour {

	public GameObject tilePrefab;
	public Transform playerTransform;
	private float ptime = 10.0f;

	// Use this for initialization
	void Start () {

	}
	
	// Update is called once per frame
	void Update () {

		ptime -= Time.deltaTime;

		if (ptime == 0f) {
			Instantiate (tilePrefab, new Vector3 (14.5f, -11.9f, 139.9f), Quaternion.identity);
		}
			
	}



}

I want to instantiate an object in the first 10 seconds of the game, but for some reason it doesn’t instantiate after ptime hits 0 (10 seconds pass). I’ve tried simply using the instantiate code in the start function just alone, and it works fine. But whenever I put the instantiate code in an IF statement, it doesn’t instantiate anything. I’ve also tried different conditions, but none of them seem to work. Am I doing something wrong? I send my thanks and appreciation to anyone who attempts to help me.

The problem is that ptime is not on a 0 to 10 scale, as a float it can go below 0, and the odds of it landing on 0 are slim.
A working and more efficient way to do this would be as follows:

public GameObject tilePrefab;
private float ptime = 10.0f;
private bool doSpawn = true;
private Vector3 position= new Vector3 (14.5f, -11.9f, 139.9f);

void Update ()
{
	if (doSpawn && Time.time > ptime)
	{
		Instantiate (tilePrefab, position, Quaternion.identity);
		doSpawn = false;
	}
}

This adds in a new bool, doSpawn, that prevents the if statement from ever passing twice, so it only spawns on the frame after the 10 second mark passes. Also it’s good practice to keep your numbers up top, aka the new variable ‘position’.