support floating point types as base type