diff --git a/bayes_opt/logger.py b/bayes_opt/logger.py index 69f40d19..c637771a 100644 --- a/bayes_opt/logger.py +++ b/bayes_opt/logger.py @@ -82,7 +82,7 @@ def _format_number(self, x: float) -> str: result = "" width = self._default_cell_size # Keep negative sign, exponent, and as many decimal places as possible - if "-" in s: + if x < 0: result += "-" width -= 1 s = s[1:] @@ -96,8 +96,6 @@ def _format_number(self, x: float) -> str: width -= dot_pos if width > 0: result += s[dot_pos : dot_pos + width] - else: - result += s[:width] if "e" in s: result += end result = result.ljust(self._default_cell_size) diff --git a/tests/test_logger.py b/tests/test_logger.py index 26e642ac..47bf7bc5 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -87,7 +87,14 @@ def test_format_number(): assert len(formatted) == logger._default_cell_size assert formatted == "1.234e+13" - # Test negative scientific notation truncation + sci_float = 1.11111111e-5 + formatted = logger._format_number(sci_float) + assert formatted == "1.111e-05" + + sci_float_neg = -1.11111111e-5 + formatted = logger._format_number(sci_float_neg) + assert formatted == "-1.11e-05" + sci_float = -12345678901234.5678901234 formatted = logger._format_number(sci_float) assert len(formatted) == logger._default_cell_size