2016-09-01 52 views
1

我正在做一個程序,它劃分了很多數字,我想檢查數字是否得到小數。我也希望它能打印這些小數。例如:Python檢查小數

foo = 7/3 
if foo has a 3 in the decimals: (Just an example of what I want to do there) 
    print("It works!) 
elif foo has no decimals: (another example) 
    print("it has no decimals") 

編輯:好了,因爲「檢查哪個小數是繼」帶來了一些困惑,讓我解釋一下。我希望能夠檢查一個數字是否有小數。例如,7/3(foo)給了我小數,但我希望python告訴我,沒有我必須做數學。忘記「哪一個小數」部分

+0

你的具體問題是什麼? –

回答

2

如果你只是想測試一個部門是否有小數,只是檢查模:

foo = a % b 
if foo != 0: 
    # Then foo contains decimals 
    pass 

if foo == 0: 
    # Then foo does NOT contain decimals 
    pass 

但是(因爲你的問題是有點不清楚),如果你要拆分的整數和小數部分,然後使用math.modf()功能:

import math 
x = 1234.5678 
math.modf(x) # (0.5678000000000338, 1234.0) 
+1

'如果foo == 0:#FOO不包含DECIMALS' ...除此之外,%b絕對是檢查**的最佳方法**如果**結果有一些小數點......並且modf很棒,可以檢查任意數字是否有小數部分 –

+1

@JoranBeasley糟糕,很好,謝謝(我編輯過)。 –

0

根據您的問題的措辭,我假設您正在查看某個數字是否在小數點後出現?如果是這樣的話......

你可以做什麼用.作爲分隔符,並檢查是否數目,在這種情況下,你正在尋找3,在部分.

拆分後富
foo = 7/float(3) 
foo = str(foo) 
after_decimal = foo.split('.')[1] 
if '3' in after_decimal: 
    print 'Yes!' 
else: 
    print 'No!' 

In this case the output is: Yes! 
+0

它告訴我'浮動'的對象沒有'拆分'屬性 –

+1

@AndreasSandberg我更新了它。用新的代碼再試一次:) – Harrison

+0

@Harrison你的代碼根本不是Pythonic,'math.modf()'函數對於工作來說更好。 –

0

你的問題有點不清楚。然而,這一點代碼可能會讓你朝着正確的方向發展。只需撥打Decimal_Checker並輸入你想要的數字即可。

def Decimal_Checker(x,y): 
    if x %y != 0: 
     print("it has decimals") 
    else: 
     print("it does not have decimals") 

Decimal_Checker(3,2) 
+0

也可以接受imho ...尤其是因爲它不太清楚op的實際需求是什麼? –