8
4

More than 3 years have passed since last update.

Pythonで数字の桁数を取得する方法

Last updated at Posted at 2020-10-10

はじめに

数字の桁数を取得する方法です。
型のキャストが少し面倒くさいですが簡単です。
[追記]コメントで、よりスマートな方法を教えていただきましたので記載しました!

整数の場合

数字を文字列に変換して、長さを取得する。
負の数の場合、マイナス符号が桁数に入ってしまうので絶対値に変換しておく。

num = -12345
num = abs(num)           # 絶対値に変換
num_str = str(num)       # 文字列に変換
num_digits = len(num)    # 文字列の長さ(桁数)を取得

print(num_digits)        # 実行結果 5

もしくは1行で

num = -12345
num_digits = len(str(abs(num)))     # 一括変換
print(num_digits)                   # 実行結果 5

小数の場合

基本的には整数の場合と一緒ですが、桁数なので小数点を排除します。

num = 0.123456
num = abs(num)
num_str = str(num).replace(".","")    # 小数点を無視
num_digits = len(num)
print(num_digits)                     # 実行結果 7

スマートな方法

数値かどうかを判定するisdigit()を使ってカウントします。
整数でも小数でもこの書き方で可能です。

def count_digit(value):
    return sum(c.isdigit() for c in str(value))

print(count_digit(-12345))     # 実行結果 5
print(count_digit(0.12345))    # 実行結果 6
print(count_digit(-3.14))      # 実行結果 3
8
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4