]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-45876: Have stdev() also use decimal specific square root. (GH-29869)
authorRaymond Hettinger <rhettinger@users.noreply.github.com>
Wed, 1 Dec 2021 01:25:57 +0000 (19:25 -0600)
committerGitHub <noreply@github.com>
Wed, 1 Dec 2021 01:25:57 +0000 (19:25 -0600)
Lib/statistics.py

index 9f1efa21b15e3ceff18a14a9e73fd8f017098268..ff19ce9672d331e4987c6f18f64eb471e195cde5 100644 (file)
@@ -920,9 +920,8 @@ def stdev(data, xbar=None):
         raise StatisticsError('stdev requires at least two data points')
     T, ss = _ss(data, xbar)
     mss = ss / (n - 1)
-    if hasattr(T, 'sqrt'):
-        var = _convert(mss, T)
-        return var.sqrt()
+    if issubclass(T, Decimal):
+        return _decimal_sqrt_of_frac(mss.numerator, mss.denominator)
     return _float_sqrt_of_frac(mss.numerator, mss.denominator)