【发布时间】: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
我尝试获取 math.trunc 函数的已删除部分。
或者一个函数支持这个请求。
import math
number = 1.9
newnumber, removed = math.trunc(number)
我需要数字 = 1 以及删除的 0.9
所以基本上我需要整数和删除的浮点数。
上面的例子不起作用:/ 有什么建议吗?
【问题讨论】:
标签: python python-3.x truncate
您需要对截断的数字保留一个句柄,并从原始数字中减去它:
import math
number = 1.9
truncated = math.trunc(number)
print(truncated, number - truncated)
【讨论】:
如果你使用 modf 你可以翻转你的变量的顺序并得到你想要的结果。
import math
number = 1.9
removed, newnumber = math.modf(number)
【讨论】:
作为起点,使用模数 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)))