Jul-16-2023, 03:56 PM
(This post was last modified: Jul-16-2023, 03:57 PM by Gribouillis.)
A faster version using Python's arbitrarily sized integers
def double(text): parts = text.split('.', 1) a, b = parts if len(parts) == 2 else (parts[0], '') shift = len(b) n = str(int(a + b) * 2) if shift: return f'{n[:-shift]}.{n[-shift:]}' else: return n for num in ("1", "10", "12.5", "1.9", "99", "99.7899", "99.999"): print(f"{num}, {double(num)}")This code assumes that the initial string doesn't have an exponential part such as 31.4e-1