Doesnt show speed on inspector

So ive done a simple 2d character movement c# script,
but it doesnt show the speed on the inspector so can someone help me out?

using UnityEngine;
using System.Collections;

public class PlayerMovement : MonoBehaviour {
public float speed = 1f;

void Start () {

}

void Update () {
if (Input.GetKey (KeyCode.D))
transform.position += new Vector3 (speed * Time.deltaTime, 0.0f, 0.0f);
if (Input.GetKey (KeyCode.A))
transform.position += new Vector3 (speed * Time.deltaTime, 0.0f, 0.0f);
if (Input.GetKey (KeyCode.W))
transform.position += new Vector3 (0.0f,speed * Time.deltaTime, 0.0f);
if (Input.GetKey (KeyCode.S))
transform.position += new Vector3 (0.0f,speed * Time.deltaTime, 0.0f);
}
}

I tested the code and it worked fine for me , the variable speed is showing up in the inspector.
Do you have any errors in your console?

but the problem I have is that the speed variable doesnt show on the inspector, any ideas why?

Is the script assigned to an object?

Do you mean its added into the player in the hierarchy? because if its that then ive done that

So, select the script in the Project window. The Inspector changes to show you the script. Is the script Unity shows you identical to the script you posted above?

Add a Debug.Log to your Start() function. When you run the game does that Debug.Log write data to the console. (If so, then it means Unity has your script.)

Failing that, take a screenshot of your Unity window, post here, and we’ll try and work out what else might or might not be happening.