Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Фиксированное количество знаков после запятой в Python

#python


Есть ли в python аналог функции toFixed() в JS? Мне нужно что-то вроде этого:

>>> a = 12.3456789
>>> a.toFixed(2)
'12.35'
>>> a.toFixed(0)
'12'
>>> b = 12.000001
>>> b.toFixed(3)
'12.000'

    


Ответы

Ответ 1



Аналог Number.prototype.toFixed() из JavaScript в Python 3.6+: def toFixed(numObj, digits=0): return f"{numObj:.{digits}f}" Пример: >>> numObj = 12345.6789 >>> toFixed(numObj) '12346' >>> toFixed(numObj, 1) '12345.7' >>> toFixed(numObj, 6) '12345.678900' >>> toFixed(1.23e+20, 2) '123000000000000000000.00' >>> toFixed(1.23e-10, 2) '0.00' >>> toFixed(2.34, 1) '2.3' >>> toFixed(2.35, 1) '2.4' >>> toFixed(-2.34, 1) '-2.3'

Ответ 2



Прямого аналога нет. Можно попробовать a = float('{:.3f}'.format(x)) Пример: >>> x = 3.1234567 >>> x = float('{:.3f}'.format(x)) >>> x 3.123

Ответ 3



Вот так можно указать количество знаков после запятой при выводе: a = [1000, 2.4, 2.23456754323456, 2754.344] for i in a: print('%.3f' % i) # 3 знака после запятой Вывод: 1000.000 2.400 2.235 2754.344 Здесь подробнее.

Ответ 4



def toFixed(f: float, n=0): a, b = str(f).split('.') return '{}.{}{}'.format(a, b[:n], '0'*(n-len(b))) f = 7.123 print(toFixed(f, 10)) # 7.1230000000 print(toFixed(f, 2)) # 7.12

Комментариев нет:

Отправить комментарий