Es geht darum, das ich Zahlen runden möchte (auf 5 Stellen), dass an und für sich ist kein Problem, wenn ich jedoch diese gerundeten Zahlen in eine Liste schreibe, dann hängt Python 999999.... oder ...00000001 hinten dran!

Ich habe gelesen, dass es an float liegt und ich besser decimal verwenden sollte, dann habe ich es in decimal versucht, hat allederdings auch nicht funktioniert...
Hier der Code:
Code: Alles auswählen
v1=1
v2=-5
v = []
kw = []
while v1<vmax:
kpv1 = math.sin(v1*y*math.pi/(yQ*2.0))
kpv2 = math.sin(v2*y*math.pi/(yQ*2.0))
kdv1 = math.sin(v1*q_P_P*alpha_u/2.0)/(q_P_P*math.sin(v1*alpha_u/2.0))
kdv2 = math.sin(v2*q_P_P*alpha_u/2.0)/(q_P_P*math.sin(v2*alpha_u/2.0))
v.append(v1)
v.append(v2)
kw1 = kpv1*kdv1
kw2 = kpv2*kdv2
print round(kw1,5)
print round(kw2,5)
kw.append(round(kw1,5))
kw.append(round(kw2,5))
v1 += 6
v2 -=6
kpv1 = math.sin(v1*y*math.pi/(yQ*2.0))
kdv1 = math.sin(v1*q_P_P*alpha_u/2.0)/(q_P_P*math.sin(v1*alpha_u/2.0))
v.append(v1)
kw.append (kpv1*kdv1)
print v
print kw
0.96593
-0.25882
0.25882
-0.96593
-0.96593
0.25882
-0.25882
0.96593
[1, -5, 7, -11, 13, -17, 19, -23, 25]
[0.96592999999999996, -0.25881999999999999, 0.25881999999999999, -0.96592999999999996, -0.96592999999999996, 0.25881999999999999, -0.25881999999999999, 0.96592999999999996, 0.96592582628906842]
Wie man sieht: Runden funktioniert, aber nicht wieder in die Liste schreiben!
dann habe ich folgendes geändert:
Code: Alles auswählen
kwform = ['%.5f' % elem for elem in kw]
print v
print kwform
0.96593
-0.25882
0.25882
-0.96593
-0.96593
0.25882
-0.25882
0.96593
[1, -5, 7, -11, 13, -17, 19, -23, 25]
['0.96593', '-0.25882', '0.25882', '-0.96593', '-0.96593', '0.25882', '-0.25882', '0.96593', '0.96593']
Jetzt stören mich aber die '' bei den Zahlen und ich habe nun ja auch strings und keine floats/decimals mehr...
Es gibt bestimmt eine Lösung.
Danke schon mal für eure Hilfe.