晚上好,
我很好奇你将如何“削减”一个整数。 例如:
num = 12345678
num_shrunk = "for example 3"(num)
print(num_shrunk)
123
我知道圆函数,但我需要精确。我已经尝试过格式(num,“3d”)但是小数位。我也不能说只打印num [0:3]因为它不是整数。
这样做是否有一种简单的方法,我显然没有看到?
答案 0 :(得分:1)
N=3
int(str(num)[:N])
应该这样做......
你也可以用数学方法做到这一点
def nDigits(int_n):
return nDigits(int_n//10) + 1 if int_n > 10 else 1
num//(10*(nDigits(num)-N)
# nDigits can also be caluclated as follows: numDigits = int(math.log(num,10))+1
虽然因为您仍然需要将其转换为字符串以获得总位数
答案 1 :(得分:0)
我可以想到使用模数除法在R中实现此目的的一种方法:
> num <- 12345678
> numshrunk <- (num - num %% 100000) / 100000
> numshrunk
123
您可以在python中应用相同的技术,将“&lt; - ”和“%%”分别替换为适当的变量赋值和模数除法运算符。
以上更有用的版本:
> N = 3
> num <- 12345678
> numshrunk <- (num - num %% 10^(N-1)) / 10^(N-1)
> numshrunk
123
答案 2 :(得分:0)
def shrink(number,amount=0): return number//(10**amount)
print shrink(1234,2)
应按预期工作。 d // i是地板划分,d ** i是功率倍增。不给予金额(收缩(5))将返回5.