Hi Duncan161, Welcome to the forum!
As baxslash has already said, that isnt the most helpful snippet when it comes to figuring out what is wrong, but I think I have a solution for you (This is only a guess until I can see the rest of the code).
`get the Floor's Y position???
CYp=Sprite Y(1)
`if the spacebar is pressed, and the character isn't already jumping
if SpaceKey()=1 and Jumping=0
`set the jump strength
JumpSpeed#=2.5
`start the jump
Jumping=1
endif
`if the jump is started
if Jumping=1
`decrease the Jump strength
JumpSpeed# = JumpSpeed# -0.1
`if the jump strength is equal to or less than zero
if JumpSpeed#<=0.0
`reset the jump strength
JumpSpeed#=0.0
`If the spacebar has been released
if spacekey()=0
`reset the jump
Jumping=0
endif
else
`get the character's new Y position by adding the jump strength
Yp = Yp + JumpSpeed#
endif
endif
`if the player is above the floor
if Yp>CYp
`Apply Gravity to the character
`(ADJUST THIS)
Gravity#=0.025
Yp=Yp-Gravity#
endif
`make sure the character didnt go through the floor
if Yp<CYp
Yp=CYp
endif
Keep in mind that I havn't even checked to see if this compiles so there might be a silly error somewhere.
In the future could you comment (and preferably indent) your code, It really helps us to see what is going on and usually reveals why a snippet isn't acting as expected.
Edit: Another Note is that since your character's position is stored in an Integer variable, you are losing quite a bit of accuracy. If you attempt to store a float value in an integer variable, it simply chops off anything after the decimal point.
What if your character is supposed to move a distance of 0.1?
[Example]
A=0
A=A+0.1
`A would still equal zero here
[/Example]
After 10 cycles like this, your character would be one pixel off of what it should be.