IComparable error due to float

I am writing a list for my game,

But as I need it to have a string and a float,

So I am using unity’s script in for this purpose but I want to use a float instead of unity’s use of an int, This is unity’s code with my changes in float’s but I am still getting the error:

Assets/PlayerMovement.cs(9,14): error CS0738: PlayerMovement' does not implement interface member System.IComparable.CompareTo(PlayerMovement)’ and the best implementing candidate PlayerMovement.CompareTo(PlayerMovement)' return type float’ does not match interface member return type `int’

using UnityEngine;
using System.Collections;
using System; //This allows the IComparable Interface

//This is the class you will be storing
//in the different collections. In order to use
//a collection's Sort() method, this class needs to
//implement the IComparable interface.
public class PlayerMovement : IComparable<PlayerMovement>
{
	public string movementName;
	public float timeOfMovement;
	
	public PlayerMovement(string newMovementName, float newTimeOfMovement)
	{
		movementName = newMovementName;
		timeOfMovement = newTimeOfMovement;
	}
	
	//This method is required by the IComparable
	//interface. 
	public int CompareTo(PlayerMovement other)
	{
		if(other == null)
		{
			return 1;
		}
		
		//Return the difference in power.
		return timeOfMovement - other.timeOfMovement;
	}
}

How can I remove this error and still use floats in my list,
Thanks in advance,
NightLucidity

I think you’re misunderstanding the purpose of the CompareTo function. It returns < 0 if the current object should sort before the other object, > 0 if it’s after, and 0 if they’re equal. The data type must be int because that’s the definition of the interface, and the data type has no relationship to any other data type in your class. It’s simply a way to return the relationship between two objects (-1, 0, +1).