[Python] 数値型データの種類や扱い方・変換方法を紹介。整数・長整数・浮動小数・複素数など

Pythonの数値型データについて解説したいと思います。

Pythonでは明示的にデータ型を指定しなくても問題ないですが、

きちんと特性を理解することが重要なので本記事を参考にしてみてください。

目次

整数・長整数の扱い方とint型変換

python3の整数・長整数は全てint型です。メモリが許す限り最大値、最小値の制限はありません。

以下が整数の加算です。

1 + 1
# 2

参考:数値のマニュアル(整数・長整数含む)

なお、int型を使える最大値、最小値のメモリ数はsys.maxsizeで取得可能です。

以下がサンプルになります。

import sys
print(sys.maxsize)
# 9223372036854775807

これは64-bitパソコンの最大の取りえる値は出力結果です。

32-bit、64-bitで最大の取りえる値は異なるので注意してください。

通常、32 ビットプラットフォームでは 231 – 1、64 ビットプラットフォームでは 263 – 1 になります。

参考:sys.maxsize

int型への変換にはintメソッド利用します。

以下がサンプルになります。

a='110'
print(type(a))
# <class 'str'>

b=int(a)
print(b)
# 110

print(type(b))
# <class 'int'>

参考:組み込み関数

浮動小数の扱い方とfloat型への変換

Pythonでは浮動小数点float型に格納されますが明示的に型を指定する必要はありません。

以下がサンプルになります。

floatnum=1.4

print(floatnum)
# 1.4
print(type(floatnum))
# <class 'float'>

int型またはString型からfloat型への変換にはfloat関数を利用します。

サンプルは以下になります。

strfloat='1.4'

#Str型 --> float型
strtofloat=float(strfloat)
print(strtofloat)
# 1.4

#int型 --> float型
intfloat=1
inttofloat=float(intfloat)
print(inttofloat)
# 1.0

#Str型 --> float型タイプ判別
print(type(strfloat))
# <class 'str'>
print(type(strtofloat))
# <class 'float'>

#int型 --> float型タイプ判別
print(type(intfloat))
# <class 'int'>
print(type(inttofloat))
# <class 'float'>

参考:組み込み関数float

Pythonにも浮動小数点誤差は存在します。formatメソッドを利用して確認してみます。

print(1.4)
# 1.4
print(format(1.4,'.30f'))
# 1.399999999999999911182158029987

参考:組み込み関数float

複素数

Pythonでは複素数を表現することは容易にできます。

複素数はcomplex型として実装されており、虚数単位はjで表現します。

以下がサンプルになります。

complexnum1 = 1 + 2j
print(complexnum1)
# (1+2j)

print(type(complexnum1))
# <class 'complex'>

jが1の場合でも1jと入力しなければいけない点に注意してください。

complexnum1 = 1 + j

print(complexnum1)
print(type(complexnum1))

エラー:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-12-ea3bd07a68e1> in <module>
----> 1 complexnum1 = 1 + j
      2 
      3 print(complexnum1)
      4 print(type(complexnum1))

NameError: name 'j' is not defined

参考:組み込み関数complex

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次