繁体   English   中英

在Python 3.x中保留或添加小数位

[英]Preserving or adding decimal places in Python 3.x

我试图返回一个数字,保留6位小数,无论该数字是多少。

例如:

>>> a = 3/6
>>> a
0.5

在保留其类型为float的同时,如何取a并将其设置为0.500000?

我试过了

'{0:.6f}'.format(a)

但这返回一个字符串。 我想要可以完成相同任务但返回浮点数的东西。

在计算机内存中,浮点数被存储为IEEE754对象 ,这意味着它只是一堆以给定格式公开的二进制数据,与编写时的数字字符串完全不同。

因此,当您对其进行操作时,它仍然是浮点数,并且小数点后没有小数位数。 只有当您显示它时,它才起作用,并且无论您做什么,当您显示它时,它都会转换为字符串。

那时,您可以进行字符串转换,可以指定要显示的小数位数,并使用编写时使用的字符串格式进行转换。

这个问题表明对诸如float和string之类的数据类型的性质有一些误解。

计算机中的浮点数具有二进制表示形式,而不是十进制形式。 python在控制台中为您提供的十进制渲染已在打印时转换为字符串,即使该字符串已由print函数隐含。 将0.5和0.5000000作为浮点数以其二进制表示形式存储之间没有区别。

在编写应用程序代码时,最好不要担心演示文稿,直到演示文稿到达最终用户为止,在这种情况下,如果只是隐式地将演示文稿转换为字符串。 那时,您可能会担心小数位,甚至根本不用十进制显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM