Some form of rounding is often unavoidable when dealing with floating point numbers. This is because numbers that you can express exactly in base 10 cannot always be expressed exactly in base 2 (which your computer uses).
float在计算机里存储时是二进制的,存在精度问题,因此 float和string 在转换时有精度的损失
http://stackoverflow.com/questions/1317558/python-converting-a-float-to-a-string-without-rounding-it