Python浮点操作
如何在python中打印一个简单操作的全浮点结果?我的代码是:Python浮点操作,python,printing,floating-point,rounding,Python,Printing,Floating Point,Rounding,如何在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):
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.230000000000000000000,但我希望错误是:0.4323321321232。通过调用rounderror,2: 如果要显示更高的精度,请不要这样做:
>>> 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)
Python if语句不需要括号;它们使你的代码在这里更难阅读。如果你要绕行并使用元素[0],只需执行一次,而不是对所有If语句执行三次。
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)