在python中存在精度问题

2024-09-30 16:22:11 发布

您现在位置: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对象

我的问题是,我需要返回完全精确的值。i、 e,1.2,1.4,3.8应该是1.2xxxxx之类的

我解决不了这个问题。你知道吗


Tags: 对象代码类型列表参数returnifdef
2条回答

(这个问题似乎来自this course,我是社区助教)

我不知道你为什么“需要”以特定的精度显示结果;分级机会自动对你的答案进行四舍五入。如果你漏掉了答案而 verbose没有帮助,最好在课程论坛上发帖。你知道吗

首先,需要使用print函数手动打印数据。你知道吗

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

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

相关问题 更多 >