2016-03-20 10 views
1

最後の2桁の整数と小数点を取得する必要があります。数値の最後の2桁を取得する方法(整数または10進数)

私はnumber%100演算子を使用して整数の最後の2桁を取得しています。しかし、私は10進数で同じことをしようとするとエラーが発生します。

文字列に変換して解析することなく、簡単な方法がありますか?

例:私は89

56789 % 100 = 89 

1234.56789 % 100を取得する必要があります

number = 1234.56789 

はエラーを与える:

ValueError: invalid literal for int() with base 10 

より多くの例:

number = 0.1 

0.1(小数点)を取得する必要があります。ここで

+0

うーん...「最後の2桁」で、あなたは1013.145の最後の2桁がされることを意味します13?または45? –

+0

数字の小数点以下の桁数を知っていますか?あるいは、おそらく10進数を超えた最大値ですか? –

+0

数字が['0.1 + 0.2']の場合の最後の2桁の数字は何ですか(http://stackoverflow.com/questions/588004/is-floating-point-math-broken)? _(注:式はリンクです)._それは '30'か' 04'ですか? –

答えて

4

はあなたの問題への実用的なソリューションです:

def last_2_digits_at_best(n): 
    return float(str(n)[-3:]) if '.' in str(n)[-2:] else int(str(n)[-2:]) 

print last_2_digits_at_best(1234.56789) 
print last_2_digits_at_best(123) 
print last_2_digits_at_best(0.1) 
print last_2_digits_at_best(1) 
print last_2_digits_at_best(0.1 + 0.2) 

出力:

89 
23 
0.1 
1 
0.3 
4.5 
1.4 
+0

はい、これは動作します。これは正解です。あなたの投票が変更されるまで、あなたが正解とマークされたらすぐに私を削除します。 –

関連する問題