用Python定义浮点数的精度

2024-04-27 21:18:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有一些python代码

代码:

 t = 1
 xt = array([ -1.,-1. ])

 xt[0] = theta[0][0]* P_all_States[t-1][0] + theta[1][0]*P_all_States[t-1][1]

 xt[1] = theta[0][1]* P_all_States[t-1][0] + theta[1][1]*P_all_States[t-1][1]

 P_all_States[t][0] = xt[0]
 P_all_States[t][1] = xt[1]
 print ("Added probability distribution for time t = " + str(t) + " to P_all_States")
 print P_all_States

输出:

Added probability distribution for time t = 1 to P_all_States [[0.6, 0.4], [0.62000000000000011, 0.38000000000000006], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0]]

如何使浮点数四舍五入为两个重要数字?

这些都是浮点数,所以我不想把它们转换成字符串,我希望它们保持浮点数

谢谢


Tags: to代码addedfortimeallarraydistribution
3条回答

要转换整个列表,请将@Zashas answer与:

rounded = [ [round(a[0],2), round(a[1],2)] for a in P_all_States ]
>>> round(0.62000000000000011,2)
0.62

我不知道你的意思,但如果你是说如何将它们的值精确地修改为0.62,等等:这在float中是不可能的,因为它们的性质。你可以用小数代替浮点数来解决这个问题。 如果您的意思是如何打印只有两个小数的浮动,请使用:

print '{:3.2f}'.format(somefloat)

相关问题 更多 >