2017-10-01 5 views
0

小数点以下の数字はどのようにして見つけることができますか?123.44最初の小数点以下の数字は4です。どうすればPythonで見つけることができますか?Pythonで小数点以下の数字を見つける

+0

あなたがこれまでに試してみました何を? –

+0

私はfracと全体の機能を試しましたが、それはまったく役に立たない! –

答えて

4

最も簡単な方法は、数字をstrに変換し、次にsplit'.'に基づいて変換します。私は以下の各繰り返しを入れました。

>>> num=123.44 

>>> str(num).split('.') 
=> ['123', '44'] 

>>> str(num).split('.')[1] 
=> '44' 

>>> str(num).split('.')[1][0] 
=> '4' 

>>> int(str(num).split('.')[1][0]) 
=> 4 

注:数値は小数点を持たないであればここで、これはErrorをスローします。だから、あなたは行って、それが存在するかどうかを確認することができます

>>> str(num).find('.')    #num=123.44 
3 
>>> str(num).find('.')    #num=123 
-1 

だから、 if条件は次のとおりです。

>>> if str(num).find('.') >= 0 : 
     #has decimal point 

それとも、ちょうどtry/exceptを使用しています。

+0

迅速な対応をありがとう!しかし、その方法は123.444455のような大きな数字のために機能しますか? –

+0

はい、任意の大きな数です。無制限。 –

1

これを行う簡単な方法は、エラーを発生させず、負の数で動作する方法です。また、任意のライブラリをインポートする必要はありません。小数点以下は何もない場合は、0を得るでしょう

after_point = num - int(num) 
10*round(after_point, 1) 

この方法です。

0

ここでは、文字列の分割を含まないソリューションです。これは代わりにforループを使用します。

num = 123.44 
after_dec_num = -1 
has_seen_point = False 
for digit in str(num): 
    if digit == '.': 
     has_seen_point = True 
    elif has_seen_point: 
     after_dec_num = int(digit) 
     break 

print(after_dec_num) 

小数点の後の桁が見つかると、その桁が得られ、ループが停止します。数字に小数点がない場合は、代わりに-1が返されます。

代替方法は以下のようになります。

num = 123.44 
after_dec_num = -1 
number = str(num) 
for idx in range(len(number)): 
    if number[idx] == '.': 
     # Since we have a decimal point, we can always assume 
     # that there would be a number after it. 
     after_dec_num = int(number[idx + 1]) 
     break 

これは、後続の数字を簡単に取得できるようにインデックスを使用しています。結果は、前のループでの結果になります。

2

最も簡単な、その後、10を乗じ、整数とモジュロ10の操作を行うに変換するために、おそらく次のようになります。

int(number * 10) % 10 
+0

ここでの回答の中で最も効率的で簡単な方法です(一定時間FTW!)。しかし、もちろん、数値に小数点があるかどうかを調べる必要があります。そうしないと、間違った結果が出るでしょう。 –

+0

@ SeanFrancisN.Ballais数値に小数点がない場合、または小数点以下の最初の小数点が0の場合は0が返されます。 – plaes

+1

これは、小数点以下の数値が最初にチェックされる理由です。小数点のある数値は通常は 'float'または' double'sなので、数値を含む変数のデータ型をチェックして、小数点があるかどうかを調べることができます。しかし、データ型が文字列の場合、単に 'float'または' double'に型キャストできます。 –

関連する問題