0

ここにいくつかの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 桁に丸めるにはどうすればよいですか?

これらはすべてフロートであるため、これらを文字列に変換するつもりはありません。フロートのままにしておきたいです

ありがとう

4

3 に答える 3

3

私はあなたが何を意味するのかわかりませんが、値を正確に 0.62 などに変更する方法を意味する場合: float の性質上、これは不可能です。この問題を回避するには、浮動小数点数の代わりに小数を使用できます。小数点以下 2 桁のみで float を出力する方法を意味する場合は、次を使用します。

print '{:3.2f}'.format(somefloat)
于 2012-10-13T20:09:14.373 に答える
2
>>> round(0.62000000000000011,2)
0.62
于 2012-10-13T20:05:12.900 に答える
0

リスト全体を変換するには、@Zashas の回答を次のように組み合わせます。

rounded = [ [round(a[0],2), round(a[1],2)] for a in P_all_States ]
于 2012-10-13T20:10:11.550 に答える