Pythonのfloat関数を使って整数や文字列を浮動小数点に変換する方法

スポンサーリンク
スポンサーリンク

イントロダクション

Pythonの全ての機能はオブジェクトと関連付けられています。

Python float は Python で浮動小数点オブジェクトを作成します。

これはPythonプログラミングの原始的な要素の1つです。

さらに、すべての種類のオブジェクトは型に分類されます。

Pythonの基本的なネイティブ型のいくつかは、文字列、整数、複素数、そして最後に浮動小数点数です。

浮動小数点数型に注目すると、Pythonのネイティブメソッドである float() は浮動小数点数型オブジェクトを生成するために使われ、また他の任意の型を対応する浮動小数点数にタイプキャストするために使用されます。

この記事では、Pythonの float() メソッドが何をするのか、そしてそれをどのようにコードで利用できるのかを説明します。

Python float() の基礎知識

基本的に、Pythonのfloat()関数は、整数や文字列などの他のデータ型からfloat型に変換するために使用されます。

また、浮動小数点型の変数を宣言するためにも使用されます。

では、この関数がどのように見えるか見てみましょう。

f = float( )

ここで、f は float 型の新しいオブジェクトです。

他の型からの変換も可能です。

他の型からも変換できます。

f = float( Val )

ここで、Val は他の型のデータで、float 型に型変換され、変数 f の中に格納されます (float 型)。

Python float() メソッドの使用法

下の例を見てください。

ここでは、ユーザが定義した縦と横の長方形の面積を計算しています。

#taking the length and breadth of the rectangle as user inputs
len=input("Enter the length of the rectangle : ")
brdth=input("Enter the breadth of the rectangle : ")
 
#at this point both len and brdth are holding str values
 
area=float() #area declared as float() object
 
#len and brdth type-casted to float for * operation
area=float(len)*float(brdth)
#area is calculated
print("The area of the given rectangle is : ",area)
print("type of area= ",type(area))

結果は以下の通りです。

s=100
print("s=",s)
print("Type before : ",type(s))
s=float(s)
print("s=",s)
print("Type after : ",type(s))

このコードでは、上のようになります。

  • まず、長方形の長さと幅をユーザー入力として受け取ります。デフォルトでは、文字列型の値として格納されます。
  • 次に、変数 area を float 型のオブジェクトとして宣言し、将来的に矩形の面積を格納することになります。
  • その後、文字列型のパラメータ lenbrdthfloat() メソッドで明示的に浮動小数点型に変換しています。さらに、len*brdth という面積を計算し、同じものを表示します。
  • 最後に、面積の type() を表示しますが、これは予想通り浮動小数点型そのものです。

Python の float() の様々な利用法

オブジェクト宣言の他に、 float() メソッドは他のデータ型を float 型に変換するために使うこともできますし、いくつかの特別なパラメータを指定して使うこともできます。

ここでは、渡したパラメータによって関数がどのように動作するかを見てみましょう。

1. float()を使った型変換

上の例で、任意のデータ型の変数を明示的に float 型に変換できることを確認しました。

より良く理解するために、このメソッドが文字列や整数などの異なるデータ型に対してどのように機能するかを見てみましょう。

s= 100
Type before :  <class 'int'>
s= 100.0
Type after :  <class 'float'>

結果は以下の通りです。

s="Python"
print("s=",s)
print("Type before : ",type(s))
s=float(s)
print("s=",s)
print("Type after : ",type(s))

ここでは、変数の型が整数型から浮動小数点型に変換されていることがわかる。

前回は、冒頭で文字列から浮動小数点への型変換を見ました。

その場合、文字列 lenbrdth は数字でした。

では、文字列が数字でない場合はどうなるのでしょうか。

見てみましょう。

s= Python
Type before :  <class 'str'>
Traceback (most recent call last):
  File "C:/Users/sneha/Desktop/test.py", line 4, in <module>
    s=float(s)
ValueError: could not convert string to float: 'Python'

出力してみましょう。

val1=float('inf')
val2=float('NaN')
val=float()
print("Default value of float()= ",val,";Type-",type(val))
print("float('inf') = ",val1,";Type-",type(val))
print("float('NaN')= ",val2,";Type-",type(val))

このことから、float() メソッドは文字列型の値を浮動小数点数に変換することしかできないことが推測されます。

そして、文字列の中に文字が含まれている場合は ValueError を投げる。

2. float() を特殊なパラメータで使用する

float()` メソッドにパラメータとして nothing, infinity, NaN(Not a Number)を渡すとどうなるのでしょうか?それらをfloatに変換できるでしょうか?以下の例で何が起こるか見てみましょう。

Float Example
float() Example

結果は以下の通りです。

Special Parameters In Float
Special Parameters In Float

つまり、上の例でわかるのは

  • float() メソッドに何も渡さない場合、そのデフォルト値は ‘0.0’ となります。
  • inf や infinity の場合は、戻り値も inf ですが、型は float に変換されています。
  • 同様に、NaN の場合は、float 型の nan が返されます。

まとめ

この記事では、Pythonの float() メソッドについて、その使い方と関数の機能について学びました。

さらに質問があれば、いつでもコメントをお待ちしています。

タイトルとURLをコピーしました