2011-10-22 52 views
2

我正在使用Python中的一些座標解析XML文件以編寫轉換後的輸出文件。問題是,一些座標是-0.00,我有一些問題在另一個系統解析它們。我需要他們是0.00而不是-0.00。我怎麼能做到這樣的事情?將-0.00轉爲0.00在Python中的浮點數

這是我在做什麼至今:

for node in nodes: 
    nodeName = node.attrib['name'] 
    nodeParts = nodeName.split('.') 
    nodeName = nodeParts[0] 

    if nodeName == 'scene': 
     f.write(nodeParts[1] + '\t') 

     position = node.find('position') 
     f.write('%.2f ' % float(position.attrib['x'])) 
     f.write('%.2f ' % float(position.attrib['y'])) 
     f.write('%.2f\n' % float(position.attrib['z'])) 

回答

4

如果該值等於零(正或負),取絕對值:

>>> x = float('-0.0') 
>>> x 
-0.0 
>>> abs(x) 
0.0 
0

也許你可以解析它作爲一個數字之前拆分字符串?只需從輸入中刪除「 - 」即可。

2

你不需要abs()

>>> test_values = [-1.0, -0.0, 0.0, 1.0] 
>>> test_values 
[-1.0, -0.0, 0.0, 1.0] 
>>> [x if x else 0.0 for x in test_values] 
[-1.0, 0.0, 0.0, 1.0] 
>>> [x or 0.0 for x in test_values] 
[-1.0, 0.0, 0.0, 1.0] 
>>> [x + 0.0 for x in test_values] 
[-1.0, 0.0, 0.0, 1.0] 
+1

...和反對票的原因是什麼? –

0

您可以使用該負零比較等於正零的事實:

​​

這原來-0.0.,並保留所有其他號碼不變。