Convert data to floats and compute the geometric mean.
Raises a StatisticsError if the input dataset is empty
or if it contains a negative value.
Returns zero if the product of inputs is zero.
No special efforts are made to achieve exact results.
(However, this may change in the future.)
>>> round(geometric_mean([54, 24, 36]), 9)
36.0