プログラミングの用語一覧へ
このページの目次

型変換とは?

最終更新:2026/08/18

3秒でわかる

あるデータ型の値を別の型として扱い直すこと。入力欄の文字列を数値にするなど、外から来た値を計算に使う前に必ず通る処理です。

もう少し詳しく

どういうものか

型変換は、ある型の値を別の型の値として扱い直すことです。文字列 "42" を整数 42 にする、小数 3.9 を整数 3 にする、といった操作がこれにあたります。書き手が明示的に関数を呼ぶ変換をキャストや明示的型変換、言語が勝手に行う変換を暗黙的型変換と呼びます。

なぜ必要か

プログラムの外から入ってくる値は、ほぼ例外なく文字列です。フォームの入力、コマンドライン引数、CSV の1行、環境変数、いずれも中身が数字に見えても型は文字列です。文字列のまま足し算をすると、多くの言語では連結になったり、そもそもエラーになったりします。外部の値を内部の計算に持ち込む境目で、必ず型変換が要ります。

具体例

age_text = input("年齢を入力 ")   # 常に文字列
age = int(age_text)               # 明示的に整数へ
print(age + 1)

print(int("42"))       # 42
print(float("3.14"))   # 3.14
print(str(42) + "歳")  # "42歳"
print(int(3.9))        # 3  切り捨てであって四捨五入ではない
print(int("42abc"))    # ValueError で落ちる
// JavaScriptは暗黙変換が強く働く
console.log("5" + 3);      // "53"   +は連結を優先
console.log("5" - 3);      // 2      -は数値に寄せる
console.log(Number("5"));  // 5      明示的に変換するのが安全
console.log(Number(""));   // 0      空文字が0になる
console.log(parseInt("12px", 10)); // 12  途中まで読む

つまずきやすいところ

Python では、変換できない文字列を渡すと ValueError で処理が止まります。ユーザー入力を扱うなら try で受けるか、str.isdigit() で事前に確かめます。全角の「42」は int() が受け付けますが isdigit() の判定と食い違うことがあるため、入力の正規化を先に行うのが確実です。

JavaScript では逆に、変換に失敗しても例外にならず NaN が返ります。NaN は何と計算しても NaN のまま伝播し、しかも NaN === NaN は false なので、比較で見つけようとすると失敗します。Number.isNaN(value) を使います。空文字が 0 に化けるのも見落としやすく、未入力を 0 円として計算してしまう不具合につながります。

小数から整数への変換が切り捨てである点も共通の罠です。金額の計算で int(price * 1.1) と書くと1円足りなくなります。丸めたいなら round() を使い分けます。

似た用語との違い

語内容
明示的型変換int() や Number() のように、書き手が呼んで変換する
暗黙的型変換演算子の都合で言語が自動的に変換する。事故の元になりやすい
型推論変換ではなく、書かなかった型をコンパイラが決めること

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地型変換プログラミング

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

このコースが入っている学習分野

Pythonコースの全編を見る