Customizer: How to Sanitize a Decimal Number Range

you need to remove the call of absint at beginning. you should do more debugging to avoid this mistake.

after that the division $number / $step always returns a float. then to round the value, use something like that :

$number = floor($number / $atts['step']) * $atts['step'];

return ( $min <= $number && $number <= $max ) ? $number : $setting->default;