在Python中定义浮点数的精度

时间:2012-10-13 19:59:47

标签: python numpy floating-point precision

我这里有一些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

输出:

  
    

将时间t = 1的概率分布添加到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]]

  

如何将浮点数舍入为2个重要数字?

这些都是浮点数,所以我不打算将它们转换为字符串,我希望它们保持为浮点数

由于

3 个答案:

答案 0 :(得分:3)

我不确定你的意思,但如果你的意思是如何将它们的值修改为0.62等等:由于它们的性质,这对浮子是不可能的。您可以使用小数而不是浮点来解决此问题。 如果您的意思是如何打印只有2位小数的浮点数,请使用:

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

答案 1 :(得分:2)

>>> round(0.62000000000000011,2)
0.62

答案 2 :(得分:0)

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

结合使用
rounded = [ [round(a[0],2), round(a[1],2)] for a in P_all_States ]