Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!
I guess you could use floor().. You might want to consider what you want the result to be if the value is negative though, as -17.6 would be floored to -18. And also, do you just want the value 17, or do you want an actual integer (int64)?
Side-note, the div function will give the result 17, but the data type is still a real (confirmed with is_real() and is_int64(), giving a 1 and 0 result, respectively).
GML doesn't really have "proper" typing and most values you use in variables will be floats, regardless of what you want them to be. Some built in variables are ints or other types, but that's pretty much internal and you should just treat all values in GM as floats unless otherwise specified by the documentation. I suspect we'll be getting explicit typing for variables in the future though, as there are so many "exceptions" to this rule now - and we have dedicated type functions for checking things - that I think it would only be a question of time before we can declare ints, floats, vecs, etc... as variables.