【问题标题】:Trunc a number and get removed value. Or cast to int?截断一个数字并获得删除的值。还是转换为int?
【发布时间】:2019-05-26 20:42:47
【问题描述】:

我尝试获取 math.trunc 函数的已删除部分。 或者一个函数支持这个请求。

import math
number = 1.9
newnumber, removed = math.trunc(number)

我需要数字 = 1 以及删除的 0.9 所以基本上我需要整数和删除的浮点数。

上面的例子不起作用:/ 有什么建议吗?

【问题讨论】:

    标签: python python-3.x truncate


    【解决方案1】:

    您需要对截断的数字保留一个句柄,并从原始数字中减去它:

    import math
    number = 1.9
    truncated = math.trunc(number)
    print(truncated, number - truncated)
    

    【讨论】:

      【解决方案2】:

      如果你使用 modf 你可以翻转你的变量的顺序并得到你想要的结果。

      import math
      number = 1.9
      removed, newnumber = math.modf(number)
      

      【讨论】:

      • 哦酷我不知道这个:) 我喜欢学习新技巧!
      【解决方案3】:

      作为起点,使用模数 1 获取已移除的部分。

      def truncate(n):
          return math.trunc(n), n % 1
      

      然后您要考虑如何处理负数。它们是否返回正的“已移除”值?

      此方法不适用于负数,您可以从原始数中减去截断数:

      t = math.trunc(n)
      return t, n - t
      

      【讨论】:

      • 或只是print("%g %g"%(divmod(1.9,1)))
      猜你喜欢
      • 2016-04-25
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2014-06-25
      • 2019-12-29
      相关资源
      最近更新 更多