Hướng dẫn python humanize numbers

An adaptation of Yonatan's answer, that prints a given number of significant digits:

def humanize_number[value, significant_digits=3, strip_trailing_zeros=True]:
    """
    Adaption of humanize_numbers_fp that will try to print a given number of significant digits, but sometimes more or
    less for easier reading.

    Examples:
    humanize_number[6666666, 2] = 6.7M
    humanize_number[6000000, 2] = 6M
    humanize_number[6000000, 2, strip_trailing_zeros=False] = 6.0M
    humanize_number[.666666, 2] = 0.67
    humanize_number[.0006666, 2] = 670µ
    """
    powers = [10 ** x for x in [12, 9, 6, 3, 0, -3, -6, -9]]
    human_powers = ['T', 'B', 'M', 'K', '', 'm', u'µ', 'n']
    is_negative = False
    suffix = ''

    if not isinstance[value, float]:
        value = float[value]
    if value < 0:
        is_negative = True
        value = abs[value]
    if value == 0:
        decimal_places = max[0, significant_digits - 1]
    elif .001 

Chủ Đề