пример, чтобы показать мою USECASE:Лучший способ печати десятичное число максимальной точностью без конечных нулей в Python
from __future__ import division
a = 215/4
print a # Case 1. Should print 53.75
a = 215/3
print a # Case 2. Should print 71.6666666666666714 i.e. decimal to 16 precision.
Возможные решения, которые не работают:
print str(a) # Case 2 gets printed with only 12 precision (needed 16)
print repr(a) # Case 2 gets printed as 71.66666666666667 (precision 14, needed 16)
print '{0:.16f}'.format(a) # Case 1 gets printed with trailing zeroes
print '{0:.16g}'.format(a) # Decimal precision is 14, needed 16.
Что бы быть лучшим питоническое решение?
Edit: Если точность 16 является ограничением float
деления, что было бы вещим способ получить 8 десятичного место точности. Есть лучшая солна. чем '{0:.8f}'.format(a).rstrip('0')
?
Точность не на самом деле 16 цифр, потому что, как вы можете видеть, она заканчивается в '714', что не является правильным. – MattDMo
Почему вы хотите, чтобы 16 цифр отображались, когда поплавки на самом деле не имеют 16 цифр точности? – user2357112
Означает ли это, что невозможно получить 18 значащих цифр (включая точность 16) с поплавковым делением? – prat0318