Страницы

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

суббота, 14 декабря 2019 г.

Число с фиксированной точностью

#python #python_3x #float


Надо вывести число a типа float на экран c точностью не менее n знаков после запятой.
Python 3, без использования библиотек.
    


Ответы

Ответ 1



n = 5 a = 1.2345678912345 template = '{:.' + str(n) + 'f}' print(template.format(a))

Ответ 2



Python 3.6+: >>> a = 2 >>> n = 3 >>> f'{a:.{n}f}' '2.000' Или (на более ранних версиях): >>> '{a:.{n}f}'.format(**vars()) '2.000'

Ответ 3



def rounds(num, max_=2): '''с точностью не более n "значащих цифр", после запятой. ''' left, right = str(num).split('.') zero, nums = zero_nums = [], [] for n in right: zero_nums[0 if not nums and n == '0' else 1].append(n) if len(nums) == max_: break return '.'.join([left, ''.join(zero) + ''.join(nums)]) print(rounds(0.0102345, 3)) >>>0.0102 print(rounds(0.000102345, 4)) >>>0.0001023

Ответ 4



Вот какой вариант решения получается у меня: >>> a = 2.0 >>> n = 5 >>> print(str(a).ljust(len(str(int(a)))) + n + 1, '0') 5.00000 или >>> a = 2.12345678 >>> n = 5 >>> print(str(a).ljust(len(str(int(a)))) + n + 1, '0') 2.12345678

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

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