diff --git a/normalization/ufonormalizer.py b/normalization/ufonormalizer.py
index ccc7086..c9e8667 100644
--- a/normalization/ufonormalizer.py
+++ b/normalization/ufonormalizer.py
@@ -2467,9 +2467,14 @@ def propertyListObject(self, data):
>>> writer.getText() == u'\\n\\ta\\n\\tb\\n'
True
+ >>> writer = XMLWriter(declaration=None)
+ >>> writer.propertyListObject({"a" : 20.2})
+ >>> writer.getText() == u'\\n\\ta\\n\\t20.2\\n'
+ True
+
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject({"a" : 20.0})
- >>> writer.getText() == u'\\n\\ta\\n\\t20\\n'
+ >>> writer.getText() == u'\\n\\ta\\n\\t20\\n'
True
>>> writer = XMLWriter(declaration=None)
@@ -2533,28 +2538,28 @@ def propertyListObject(self, data):
>>> writer.getText() == u'-1.1'
True
+ Integer
+ -------
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject(1.0)
- >>> writer.getText() == u'1'
+ >>> writer.getText() == u'1'
True
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject(-1.0)
- >>> writer.getText() == u'-1'
+ >>> writer.getText() == u'-1'
True
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject(0.0)
- >>> writer.getText() == u'0'
+ >>> writer.getText() == u'0'
True
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject(-0.0)
- >>> writer.getText() == u'0'
+ >>> writer.getText() == u'0'
True
- Integer
- -------
>>> writer = XMLWriter(declaration=None)
>>> writer.propertyListObject(1)
>>> writer.getText() == u'1'
@@ -2635,7 +2640,12 @@ def propertyListObject(self, data):
elif isinstance(data, (int, long)):
self._plistInt(data)
elif isinstance(data, float):
- self._plistFloat(data)
+ dataStr = xmlConvertFloat(data)
+ try:
+ data = int(dataStr)
+ self._plistInt(data)
+ except ValueError:
+ self._plistFloat(data)
elif isinstance(data, plistlib.Data):
self._plistData(data)
elif isinstance(data, datetime.datetime):