在python中遇到精度问题

时间:2013-08-17 14:21:57

标签: python

我有以下代码:

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

b和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等。

我无法解决这个问题。

2 个答案:

答案 0 :(得分:1)

首先,您需要使用print功能手动打印数据。

其次,使用format函数,它允许设置精度,如下面的代码段所示:

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

答案 1 :(得分:1)

(这个问题似乎来自this course,我是一名社区TA)

我不确定为什么你“需要”以特定的精度显示结果;平地机会自动舍入您的答案。如果您错过了答案并且--verbose没有帮助,那么您可能会更好地在课程论坛上发帖。