float - The rounded value, if snap is positive, and val otherwise.
Rounds the value val to the closest multiple of snap (snap can only be posiive).