2016-06-21 18 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