diff --git a/pyerrors/obs.py b/pyerrors/obs.py index 66f137d5..7d8f9911 100644 --- a/pyerrors/obs.py +++ b/pyerrors/obs.py @@ -694,8 +694,12 @@ class Obs: return _format_uncertainty(self.value, self._dvalue) def __format__(self, format_type): + if format_type == "": + significance = 2 + else: + significance = int(float(format_type.replace("+", "").replace("-", ""))) my_str = _format_uncertainty(self.value, self._dvalue, - significance=int(float(format_type.replace("+", "").replace("-", "")))) + significance=significance) for char in ["+", " "]: if format_type.startswith(char): if my_str[0] != "-": diff --git a/tests/obs_test.py b/tests/obs_test.py index d5d8d5e1..a77c6863 100644 --- a/tests/obs_test.py +++ b/tests/obs_test.py @@ -1274,3 +1274,11 @@ def test_format(): assert o1.__format__("+3") == '+0.3480(123)' assert o1.__format__("+2") == '+0.348(12)' assert o1.__format__(" 2") == ' 0.348(12)' + +def test_f_string_obs(): + o1 = pe.pseudo_Obs(0.348, 0.0123, "test") + print(f"{o1}") + print(f"{o1:3}") + print(f"{o1:+3}") + print(f"{o1:-1}") + print(f"{o1: 8}")