2013-08-17 3 views
-1

У меня есть следующий код:Возникли проблемы с точностью в питоне

def myproc(b,a): 
    return b-(((b*a)/(a*a) if a*a !=0 else 0) *a) 

б и являются объектами типа Vec. Возвращаемое значение также является объектом Vec.

>>> myproc(list2vec([1, 1, 4]), list2vec([1, 2,-1])) 
Vec({0, 1, 2},{0: 1.2, 1: 1.4, 2: 3.8}) 

Примечание: list2vec для преобразования данного параметра из списка в Vec объекта

Моя проблема заключается в том, что мне нужно значения должны быть возвращены в полной точностью. то есть 1,2, 1,4, 3,8 должны быть чем-то вроде 1.2xxxxx и т. д.

Я не мог решить эту проблему.

+0

Что делать, если 1.4 является полным номером? Что вы хотите отобразить? –

ответ

1

Во-первых, вам необходимо распечатать данные вручную с помощью функции print.

Во-вторых, использовать format функцию, которая позволяет настроить точность, как в следующем фрагменте кода:

>>> print('{0:.8f}'.format(1.2)) 
1.20000000 
+0

Спасибо. Он сделал эту цель в целом, хотя не мог помочь в моей конкретной проблеме из-за некоторых других ограничений в моем случае, но я согласен с ответом. – user2192774

1

(Этот вопрос, как представляется, из this course, для которого я Сообщество TA)

Я m не уверен, почему вам «нужно», чтобы отображать результаты с определенной точностью; грейдер автоматически округляет ваши ответы. Если вам не хватает ответа, а --verbose не помогает, вам может быть лучше отправлено сообщение на форумах курсов.

Смежные вопросы