-4

Pythonでの簡単な操作のフルフロート結果を出力するにはどうすればよいですか? 私のコードは:

if( int(array_Y[counter2]) == int(round(float(elem[0])))):
                if(int(round(float(elem[0]))) == 0):
                    negatiu_verdader += 1
                if(int(round(float(elem[0]))) == 1):
                    positiu_verdader += 1
                counter = counter + 1
            counter2 = counter2 + 1

        error =  float(1.0000- (1.0000 * counter / counter2))

        print "        ERROR!!!!!!!!!!!!!!!!!!!!!!!! :" + ("{0:.15f}".format(round(error,2)))

しかし、エラーは常に:0.420000000000000または0.230000000000000ですが、エラーを: にしたいと思います0.43233213213232

4

1 に答える 1

3

を呼び出して、エラーを小数点以下 2 桁に切り捨てますround(error, 2)

>>> round(0.43233213213232, 2)
0.43

より正確に表示したい場合は、そうしないでください。

>>> format(round(0.43233213213232, 2), '.15f')
'0.430000000000000'
>>> format(0.43233213213232, '.15f')
'0.432332132132320'

コード内で多くの冗長な作業を行っているため、コードを少し単純化します。

elem_rounded = int(round(float(elem[0])))
if int(array_Y[counter2]) == elem_rounded:
    if not elem_rounded:
        negatiu_verdader += 1
    elif elem_rounded == 1:
        positiu_verdader += 1
        counter += 1
        counter2 += 1

    error =  1.0 - (1.0 * counter / counter2)
    print "        ERROR!!!!!!!!!!!!!!!!!!!!!!!! :{0:.15f}".format(error)
于 2013-07-26T10:36:00.993 に答える