在处理浮点数时,通常不可避免地需要某种形式的舍入。这是因为您可以以10为基数精确表示的数字不能始终以2为基数(您的计算机使用)精确表示。
例如:
>>> .10.10000000000000001
在这种情况下,您会看到使用.1将.1转换为字符串
repr:
>>> repr(.1)'0.10000000000000001'
我相信当您使用str()来解决此问题时,python会砍掉最后几位数,但这是部分解决方法,不能替代理解正在发生的事情。
>>> str(.1)'0.1'
我不确定“四舍五入”到底是什么问题导致了您。也许您会更好地使用字符串格式来更精确地控制输出?
例如
>>> '%.5f' % .1'0.10000'>>> '%.5f' % .12345678'0.12346'
文档在这里。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)