截断一个数字并获取删除的值。还是转换为 int?

Trunc a number and get removed value. Or cast to int?

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

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

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

以上示例将不起作用:/ 有什么建议吗?

作为起点,使用模数 1 得到删除的部分。

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

然后你要考虑如何处理负数。他们 return 是一个正的“移除”值吗?

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

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

您需要保留截断数字的句柄,并将其从原始数字中减去:

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

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

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