Расширение Chrome: связь между скриптом содержимого и background.html

OP хотел бы удалить сверкающие нули и сделать результирующую строку как можно короче.

Я нахожу, что экспоненциальное форматирование% g сокращает результирующую строку для очень больших и очень малых значений. Проблема возникает для значений, для которых не требуется экспоненциальная запись, например 128.0, которая не является ни очень большой, ни очень малой.

Вот один из способов форматирования чисел как коротких строк, которые используют экспоненциальную нотацию% g только тогда, когда Decimal.normalize создает слишком длинные строки. Это может быть не самое быстрое решение (поскольку оно использует Decimal.normalize)

def floatToString (inputValue, precision = 3):
    rc = str(Decimal(inputValue).normalize())
    if 'E' in rc or len(rc) > 5:
        rc = '{0:.{1}g}'.format(inputValue, precision)        
    return rc

inputs = [128.0, 32768.0, 65536, 65536 * 2, 31.5, 1.000, 10.0]

outputs = [floatToString(i) for i in inputs]

print(outputs)

# ['128', '32768', '65536', '1.31e+05', '31.5', '1', '10']
16
задан Rob W 4 December 2012 в 21:53
поделиться