无论数字是多少,我都试图返回一个小数点后6位的数字。
例如:
>>> a = 3/6
>>> a
0.5
在保留其类型为浮点数的同时,如何取a并将其设为0.500000?
我尝试过
'{0:.6f}'.format(a)
但是返回一个字符串。我想要可以完成相同任务但返回浮点数的东西。
答案 0 :(得分:1)
在计算机内存中,浮点数以IEEE754 object的形式存储,这意味着它只是一堆以给定格式公开的二进制数据,与编写时的数字字符串完全不同。 / p>
因此,当您对其进行操作时,它仍然是浮点数,并且小数点后没有小数位数。仅当您显示它时,它才会执行,并且无论您做什么,当您显示它时,它都会转换为字符串。
那是当您进行到字符串的转换时,您可以指定要显示的小数位数,并使用编写时使用的字符串格式来完成。
答案 1 :(得分:1)
此问题表明对诸如float和string之类的数据类型的性质有一些误解。
计算机中的浮点数具有二进制表示形式,而不是十进制形式。 python在控制台中为您提供的十进制渲染已在打印时转换为字符串,即使该字符串已由print函数隐含。将0.5和0.5000000作为浮点数以其二进制表示形式存储之间没有区别。
在编写应用程序代码时,最好不要担心演示文稿,直到最终用户必须以某种方式将其转换为字符串(如果只是隐式地)后,再也不用担心。那时,您可能会担心小数位,甚至根本不希望显示小数。