The imlib_image_fill_color_range_rectangle() function (of imlib2) that is used by hsetroot accepts a double-precision floating point number for its angle argument. The hsetroot -gradient argument should use the same.
Patch attached.
Brian
hsetroot-gradient-angle-float.patch