【问题标题】:Count decimal places in a float [duplicate]计算浮点数中的小数位[重复]
【发布时间】:2014-10-07 08:30:54
【问题描述】:

在python中,我导入了一个数字中小数位长度不同的文件,例如7.2或7.2332 是否可以找出数字中的小数位数,如果可以,如何?我可以在 SO 上找到的所有问题都是关于格式化到特定小数位的问题,但这不是我正在做的。

该应用程序是使用 qdoublespinbox 并将小数位设置为仅需要的数量。

编辑:

在上下文中,我可以打印数字,它将打印 7.2 或 5.42422 等。如果命令提示符打印正确的数字(即不打印浮点内存分配中的所有内容)有什么办法可以获取该信息。

【问题讨论】:

  • 你不能。这是不可能的(除非你愿意得到意想不到的答案)。
  • 在使用计算机时,特别是浮点数,仅仅因为您将一个数字设置为一定的小数位数并不意味着它实际上有那么多。这是因为有些数字是无法复制的,例如 0.1 实际上是 0.100000000000000005551115123126
  • 我猜快速投票意味着措辞有问题,所以我问是否可能。不知道我不希望得到什么答案,但我不明白为什么这个问题值得反对,答案是不可能的
  • @Ffisegydd 我添加了一个编辑来澄清
  • @user1938107 我投了反对票,因为没有尝试查找重复项,也没有提供重要(相关)信息。

标签: python qt python-2.7


【解决方案1】:

假设“导入文件”意味着您的小数是文件中的字符串,您可以使用 reverse 并查找:

>>> f = "7.2332"
>>> f[::-1].find('.')
4
>>> f = "7.20"
>>> f[::-1].find('.')
2

【讨论】:

  • 一个简单的转换适用于实际请求的浮点参数:f = 7.2332; str(f)[::-1].find('.')
  • 谢谢!它在未来和 Python 3.x 中对我有用 - 请注意,如果没有小数,它将返回 -1。出于某种原因,这篇被关闭并标记为重复的帖子不起作用。所以,再次感谢这篇文章! :D
  • 这太棒了!有人可以解释 [::-1] 索引是如何工作的吗?在我看来它反转了字符串元素然后从新的“开始”搜索
【解决方案2】:

转换为字符串,求小数点相对于字符串长度的位置。

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多