我试图返回一个有6个小数位的数字,而不管这个数字是什么。
例如:
>>> a = 3/6
>>> a
0.5
如何将a设为0.500000,同时将其类型保留为浮点型?
我试过了
'{0:.6f}'.format(a)
但这会返回一个字符串。我想要一些东西来完成同样的任务,但返回一个浮点数。
发布于 2018-07-28 03:58:03
这个问题表明对数据类型的性质有一点误解,比如浮点数和字符串。
计算机中的浮点数是二进制表示法,而不是十进制表示法。python在控制台中提供给您的小数表示在打印时被转换为字符串,即使它被print函数隐式地表示出来。0.5和0.5000000在其二进制表示形式中存储为浮点数的方式没有区别。
当您编写应用程序代码时,最好不要担心表示,直到它到达最终用户,它必须以某种方式转换为字符串,即使只是隐式转换。在这一点上,您可以担心小数位数,甚至根本不需要用小数表示。
发布于 2018-07-28 03:54:29
在计算机的内存中,浮点数被存储为IEEE754 object,这意味着它只是一堆二进制数据,以给定的格式暴露出来,与您编写数字时的字符串完全不同。
所以当你操作它的时候,它仍然是一个浮点数,并且在点后面没有小数位数。只有当您显示它时,它才会执行此操作,无论您做什么,当您显示它时,它都会转换为字符串。
这就是您转换为字符串的时候,您可以指定要显示的小数位数,并使用您编写的字符串格式进行转换。
https://stackoverflow.com/questions/51564668
复制相似问题