2013-11-22 24 views
2

我有一個浮點值的列表,我想將它繪製到一個圖上。我們如何從浮動數字中提取前4個精度,然後再放入另一個新列表中?提取浮點數的第N個位置

C = [] 
C.append(23.1234567890) 
C.append(14.1234567890) 

print ('C - ' + str(C)) 

D = [] 
D.append(C[0]) 
D.append(C[1]) 

print ('D - ' + str(D)) 

得到

C - [23.123456789, 14.123456789] 
D - [23.123456789, 14.123456789] 

期待

C - [23.123456789, 14.123456789] 
D - [23.1235, 14.1235] 

回答

3

你可以很容易的字符串表示:

>>> '{:.4f}'.format(23.1234567890) 
'23.1235' 

您也可以使用round功能:

>>> round(23.1234567890, 4) 
23.1235 

請注意,如果您使用round,數量將幾乎永遠是準確由於表示浮點數而需要的4位精度。

0

你可以做到這一點,例如,通過字符串操作:

strC = split(str(C), ".") 
strC = strC[0] + "." + strC[1][:5] 
print ('C - ' + strC) 
0

可以使用字符串格式化做到這一點:

C = [] 
C.append(23.1234567890) 
C.append(14.1234567890) 

print ('C - ' + str(C)) 

D = [] 
D.append(float("%.4f" % C[0])) 
D.append(float("%.4f" % C[1])) 

print ('D - ' + str(D)) 
0

您可以用數學刪除不需要的數字,使用模%功能:

C = [] 
C.append(23.1234567890) 
C.append(14.1234567890) 

print ('C - ' + str(C)) 

D = [] 
for i in C: 
    D.append(i - (i% (10**-4))) 

print ('D - ' + str(D)) 

-4是你想保留位數。 10**-40.0001