在Python中将-0.00转换为0.00浮点
我正在用Python解析一个带有坐标的XML文件,以编写一个转换后的输出文件。问题是一些坐标是-0.00,我在另一个系统中解析它们时遇到了一些问题。我需要它们是0.00而不是-0.00。我怎么能做到这一点呢 这就是我目前正在做的:在Python中将-0.00转换为0.00浮点,python,xml,file,floating-point,Python,Xml,File,Floating Point,我正在用Python解析一个带有坐标的XML文件,以编写一个转换后的输出文件。问题是一些坐标是-0.00,我在另一个系统中解析它们时遇到了一些问题。我需要它们是0.00而不是-0.00。我怎么能做到这一点呢 这就是我目前正在做的: for node in nodes: nodeName = node.attrib['name'] nodeParts = nodeName.split('.') nodeName = nodeParts[0] if nodeName
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']))
也许您可以在将字符串解析为数字之前拆分它?只需从输入中删除“-”。如果值等于零(正或负),则取绝对值:
>>> x = float('-0.0')
>>> x
-0.0
>>> abs(x)
0.0
您不需要abs()
您可以使用负零与正零比较相等的事实:
def f(x):
return 0. if x == 0. else x
这会将-0.
变为0.
,并保持其他数字不变
def f(x):
return 0. if x == 0. else x