@marcedwards Try this in the terminal:
echo '{"test":0.45}' > test.plist plutil -convert xml1 test.plist cat test.plist
As you can see, the way floats are stored in the XML serialization has nothing to do with how artisanal the original JSON was.
Bonus points: edit the XML version back to 0.45 and run the convert command again.