[Python] float型と整数型・文字列型で相互変換する方法
Pythonでは、数値型の変換が簡単に行えます。float
型をint
型に変換するには、int()
関数を使用しますが、小数点以下は切り捨てられます。
逆に、int
型をfloat
型に変換するには、float()
関数を使用します。
文字列型からfloat
型への変換はfloat()
関数を、float
型から文字列型への変換はstr()
関数を使用します。
これらの変換は、データの型を適切に扱うために重要です。
float型と整数型の相互変換
float型から整数型への変換
int()関数の使用方法
int()関数
を使用すると、float型
の値を整数型に変換できます。
この際、小数点以下は切り捨てられます。
# float型の値
float_value = 3.14
# int()関数を使って整数型に変換
int_value = int(float_value)
print(int_value) # 出力: 3
このコードでは、3.14
が3
に変換されます。
切り捨てと四捨五入の違い
切り捨ては小数点以下を単純に削除する方法で、四捨五入は小数点以下の値に基づいて最も近い整数に変換します。
切り捨てはint()関数
で行い、四捨五入はround()関数
を使用します。
# 切り捨て
float_value = 3.7
int_value_floor = int(float_value) # 切り捨て
print(int_value_floor) # 出力: 3
# 四捨五入
int_value_round = round(float_value) # 四捨五入
print(int_value_round) # 出力: 4
math.floor()とmath.ceil()の使用
math
モジュールのfloor()関数
は切り捨て、ceil()関数
は切り上げを行います。
import math
float_value = 3.7
# 切り捨て
floor_value = math.floor(float_value)
print(floor_value) # 出力: 3
# 切り上げ
ceil_value = math.ceil(float_value)
print(ceil_value) # 出力: 4
整数型からfloat型への変換
float()関数の使用方法
float()関数
を使用すると、整数型の値をfloat型
に変換できます。
# 整数型の値
int_value = 5
# float()関数を使ってfloat型に変換
float_value = float(int_value)
print(float_value) # 出力: 5.0
自動型変換の例
Pythonでは、演算を行う際に自動的に型が変換されることがあります。
例えば、整数とfloatを足すと、結果はfloatになります。
int_value = 5
float_value = 2.5
result = int_value + float_value
print(result) # 出力: 7.5
小数点以下の扱い
整数をfloat型
に変換すると、小数点以下が追加されますが、元の整数の値は変わりません。
int_value = 10
float_value = float(int_value)
print(float_value) # 出力: 10.0
このように、整数型からfloat型
に変換することで、数値の表現が変わりますが、値自体は同じです。
float型と文字列型の相互変換
float型から文字列型への変換
str()関数の使用方法
str()関数
を使用すると、float型
の値を文字列型に変換できます。
この方法は非常にシンプルで、直感的です。
# float型の値
float_value = 3.14
# str()関数を使って文字列型に変換
string_value = str(float_value)
print(string_value) # 出力: '3.14'
このコードでは、3.14
が文字列'3.14'
に変換されます。
format()メソッドの使用
format()メソッド
を使用すると、より柔軟にfloat型
を文字列型に変換できます。
特定のフォーマットを指定することも可能です。
# float型の値
float_value = 3.14159
# format()メソッドを使って文字列型に変換
formatted_string = "値は {:.2f}".format(float_value)
print(formatted_string) # 出力: 値は 3.14
この例では、小数点以下2桁にフォーマットされています。
f文字列の使用
Python 3.6以降では、f文字列を使用して簡単に文字列を作成できます。
変数を直接埋め込むことができ、可読性が高いです。
# float型の値
float_value = 3.14
# f文字列を使って文字列型に変換
f_string = f"値は {float_value:.2f}"
print(f_string) # 出力: 値は 3.14
この方法も小数点以下の桁数を指定できます。
文字列型からfloat型への変換
float()関数の使用方法
float()関数
を使用すると、文字列型の数値をfloat型
に変換できます。
# 文字列型の数値
string_value = "3.14"
# float()関数を使ってfloat型に変換
float_value = float(string_value)
print(float_value) # 出力: 3.14
このコードでは、文字列'3.14'
がfloat型
の3.14
に変換されます。
数値以外の文字列の扱い
数値以外の文字列をfloat()関数
で変換しようとすると、ValueError
が発生します。
# 数値以外の文字列
string_value = "abc"
try:
float_value = float(string_value)
except ValueError:
print("数値に変換できません。") # 出力: 数値に変換できません。
このように、数値以外の文字列は変換できないため、エラーハンドリングが必要です。
エラーハンドリング
文字列をfloat型
に変換する際には、エラーハンドリングを行うことで、プログラムがクラッシュするのを防ぐことができます。
# 変換する文字列
string_value = "3.14abc"
try:
float_value = float(string_value)
except ValueError:
print("数値に変換できません。正しい形式の文字列を入力してください。")
このコードでは、無効な文字列が与えられた場合にエラーメッセージを表示します。
これにより、ユーザーに正しい入力を促すことができます。
応用例
数値のフォーマット
小数点以下の桁数指定
数値を表示する際に、小数点以下の桁数を指定することができます。
format()メソッド
やf文字列を使用して、表示形式を整えます。
# float型の値
float_value = 3.14159
# 小数点以下2桁にフォーマット
formatted_value = "{:.2f}".format(float_value)
print(formatted_value) # 出力: 3.14
科学技術表記法
科学技術表記法を使用することで、大きな数や小さな数を簡潔に表現できます。
format()メソッド
やf文字列でe
を使います。
# 大きな数
large_value = 1234567890.0
scientific_notation = "{:.2e}".format(large_value)
print(scientific_notation) # 出力: 1.23e+09
通貨形式の表示
通貨形式で数値を表示する場合、locale
モジュールを使用して地域に応じたフォーマットを適用できます。
import locale
# ロケールを設定
locale.setlocale(locale.LC_ALL, 'ja_JP.UTF-8')
amount = 1234567.89
formatted_currency = locale.currency(amount, grouping=True)
print(formatted_currency) # 出力: ¥1,234,567.89
ユーザー入力の処理
入力値の検証
ユーザーからの入力を受け取る際、数値であることを確認するための検証を行います。
user_input = input("数値を入力してください: ")
try:
float_value = float(user_input)
print(f"入力された数値: {float_value}")
except ValueError:
print("無効な入力です。数値を入力してください。")
エラーメッセージの表示
無効な入力があった場合、適切なエラーメッセージを表示してユーザーに知らせます。
user_input = input("数値を入力してください: ")
try:
float_value = float(user_input)
except ValueError:
print("エラー: 数値以外の入力がありました。再度入力してください。")
再入力の促し
無効な入力があった場合、再度入力を促すループを作成します。
while True:
user_input = input("数値を入力してください: ")
try:
float_value = float(user_input)
print(f"入力された数値: {float_value}")
break # 正しい入力があった場合、ループを抜ける
except ValueError:
print("無効な入力です。数値を入力してください。")
データの読み込みと書き出し
CSVファイルの処理
CSVファイルを読み込む際には、csv
モジュールを使用します。
データをリストとして取得できます。
import csv
# CSVファイルの読み込み
with open('data.csv', mode='r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row) # 各行を表示
JSONデータの処理
JSON形式のデータを扱う際には、json
モジュールを使用します。
データを辞書型として取得できます。
import json
# JSONファイルの読み込み
with open('data.json', mode='r', encoding='utf-8') as file:
data = json.load(file)
print(data) # JSONデータを表示
データベースとの連携
SQLiteを使用してデータベースに接続し、データを操作することができます。
import sqlite3
# データベースに接続
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# テーブルの作成
cursor.execute('''CREATE TABLE IF NOT EXISTS numbers (value REAL)''')
# データの挿入
cursor.execute('''INSERT INTO numbers (value) VALUES (?)''', (3.14,))
conn.commit()
# データの取得
cursor.execute('''SELECT * FROM numbers''')
rows = cursor.fetchall()
for row in rows:
print(row)
# 接続を閉じる
conn.close()
このように、Pythonを使用してさまざまなデータのフォーマットや処理を行うことができます。
まとめ
この記事では、Pythonにおけるfloat型
と整数型・文字列型の相互変換について詳しく解説しました。
具体的な変換方法やエラーハンドリング、数値のフォーマットなど、実用的な応用例も紹介しました。
Pythonを使ってデータを扱う際には、これらの知識を活用して、より効率的なプログラミングを行ってみてください。