From d4f05217546dd98f81ca472aa00e68d978c900f4 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Mon, 20 Aug 2018 08:19:25 -0700 Subject: [PATCH 1/1] fix misformatting of floats with leading zeros (#464) --- black.py | 4 +++- tests/data/numeric_literals.py | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/black.py b/black.py index b65693e..5550b23 100644 --- a/black.py +++ b/black.py @@ -2564,7 +2564,9 @@ def format_int_string(text: str, allow_underscores: bool) -> str: # No underscores for numbers <= 6 digits long. return text - return format(int(text), "3_") + # Avoid removing leading zeros, which are important if we're formatting + # part of a number like "0.001". + return format(int("1" + text), "3_")[1:].lstrip("_") def normalize_invisible_parens(node: Node, parens_after: Set[str]) -> None: diff --git a/tests/data/numeric_literals.py b/tests/data/numeric_literals.py index 8999b9d..2dc64c7 100644 --- a/tests/data/numeric_literals.py +++ b/tests/data/numeric_literals.py @@ -14,6 +14,7 @@ x = 123456789.123456789J x = 0XB1ACC x = 0B1011 x = 0O777 +x = 0.000000006 # output @@ -34,3 +35,4 @@ x = 123_456_789.123_456_789j x = 0xb1acc x = 0b1011 x = 0o777 +x = 0.000_000_006 -- 2.39.5