diff --git a/pisa/core/param.py b/pisa/core/param.py index 652e1d2d9..823437648 100644 --- a/pisa/core/param.py +++ b/pisa/core/param.py @@ -36,6 +36,7 @@ from pisa.utils.comparisons import FTYPE_PREC from pisa.utils.callable import Funct from pisa.utils.resources import find_resource +from pisa.utils.format import format_num __all__ = [ 'Param', @@ -893,7 +894,9 @@ def tabulate(self, tablefmt="plain"): table.append([p.name, p.value, p.nominal_value, p.range, p.prior, p.units, p.is_fixed]) else: if p.range is not None: - range_fmt = [r.m for r in p.range] + # convert range to float values that will be displayed nicer than e.g. numpy floats. + # sigfigs=6 catches "machine precission errors" when converting single to double precission. + range_fmt = [float(format_num(r.m, sigfigs=6)) for r in p.range] else: range_fmt = None if p.prior is not None: diff --git a/pisa/utils/config_parser.py b/pisa/utils/config_parser.py index 926f144da..3454285d4 100644 --- a/pisa/utils/config_parser.py +++ b/pisa/utils/config_parser.py @@ -254,7 +254,7 @@ import numpy as np from uncertainties import ufloat, ufloat_fromstr -from pisa import ureg +from pisa import ureg, FTYPE from pisa.utils.fileio import from_file from pisa.utils.format import split from pisa.utils.hash import hash_obj @@ -511,7 +511,7 @@ def parse_param(config, section, selector, fullname, pname, value): if 'sigma' in range_: sigma = value.s * value.units # pylint: disable=unused-variable range_ = range_.replace('[', 'np.array([') - range_ = range_.replace(']', '])') + range_ = range_.replace(']', '], dtype=FTYPE)') #range should have pisa FTYPE # Strip out uncertainties from value itself (as we will rely on the # prior from here on out) kwargs['range'] = eval(range_).to(value.units) # pylint: disable=eval-used