circular_value: add support for floating point types