2016-06-21 33 views
-2

我一直在设计验证GTIN-8代码的代码。我已经看过如何找到一个10的相等或更高的倍数,我迄今没有成功,希望你们能帮助我!等号或更高的倍数,Python

这里是一个小的代码,我需要找到的10

NewNumber = (NewGtin_1 + Gtin_2 + NewGtin_3 + Gtin_4 + NewGtin_5 + Gtin_6 + NewGtin_7) 
print (NewNumber) 
+1

相等或更高倍数相对于什么号码? –

+0

您显示的代码无助于理解您的问题。 – polku

回答

0

如果你的意思是找到10的最小倍数是大于或等于你的电话号码,试图

def round_up_by_10s(num): 
    return -((-num) // 10) * 10 

,对于正数和负数的作品,整数或浮点数,在Python 2.x或Python 3.x.它也避免了if语句,可以写成一行。对于浮点数,它返回一个浮点数:如果您希望返回值始终为整数,则将返回值包围在int(...)之间。

如果你的意思发现是你的号码和10的倍数的最小数量,尽量的10

def lcm10(num): 
    return (10 // gcd(num, 10)) * num 
+0

谢谢,这有帮助。我的意思是10的最小倍数大于或等于数字。 –

0

一般来说,等于或高于多个来讲你可以找到与modulo操作的倍数:

if number % 10 == 0: 
    do something 
+0

这有点帮助了我,但是我需要找到号码然后做点事情,if语句不是必需的 –

+0

@NScott但是如果你不检查它是否是10的倍数,你打算如何找到那个号码?另外,如果我帮助你,考虑提高我的解决方案。 –

0

我我猜你是什么10的最小倍数高于或等于NewNumber。如果是这样的话,做的事:

last_digit = NewNumber % 10 
bigger = NewNumber - last_digit 
if last_digit != 0: 
    bigger += 10 

而且,你不应该使用大写字母开始的变量名,这些通常只用于类。

0

尝试使用这样的:

# method 1 for integers 
n = NewNumber/10 * 10 
if n < NewNumber: n += 10 
# method 2 for floats, decimals 
import math 
n = math.ceil(NewNumber/10) * 10