0Pricing
Lua Academy · レッスン

整数と浮動小数点数

Luaが数値を表現する方法を学びます。

「整数と浮動小数点数」はCoddyKit上の無料Lua Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLua Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Lua Academyコースには全4レッスンが含まれています。

Luaの数値

Luaでは、number型があらゆる種類の数値を保持します。数を数えたり、値を測定したり、計算したりするために数値を使います。

Lua 5.3以降では、数値に2つの種類があります。整数(小数部分のない数)と浮動小数点数(小数点を含む数)です。

まずは数値をいくつか表示してみましょう。

print(10)
print(3.14)

整数とは

整数とは、小数部分を持たない数のことで、0、42、-7などが該当します。

小数点を付けずに数値を書くと、Luaはそれを整数として扱います。

  • 5は整数です
  • -100は整数です
local apples = 5
print(apples)

浮動小数点数とは

浮動小数点数(float)は、3.14や0.5のような小数値を表現できます。

小数点を付けて書いた数値は、2.0であっても浮動小数点数になります。

浮動小数点数を使うと、測定値や除算の結果を格納できます。

local price = 2.5
print(price)

サブタイプの確認

整数と浮動小数点数は、どちらも"number"という型名を共有します。値がどちらのサブタイプかを確認するには、math.type()を使います。

数値の場合は"integer"または"float"を返し、数値でない場合はnilを返します。

print(math.type(10))
print(math.type(3.14))

type()とmath.type()の違い

type()関数は、一般的な型を示します。数値に対しては"number"を返します。

math.type()関数はさらに詳しく調べ、整数か浮動小数点数かを示します。目的に合った関数を使い分けてください。

print(type(7))
print(math.type(7))

除算は必ず浮動小数点数になる

通常の除算演算子/は、数値を割り切れる場合でも、必ず浮動小数点数を生成します。

そのため、10 / 2の結果は5ではなく5.0になります。出力の.0に注目してください。

print(10 / 2)
print(math.type(10 / 2))

整数除算

整数の結果が必要な場合は、整数除算演算子//を使います。除算した結果を負の無限大方向へ切り捨てます。

両方のオペランドが整数なら、結果も整数になります。

print(7 // 2)
print(math.type(7 // 2))

浮動小数点数でも整数値を保持できる

浮動小数点数でも整数値を格納できます。4.0は値としては4と等しいですが、サブタイプはfloatのままです。

Luaでは数値として同じ値を持つため、4 == 4.0はtrueとみなされます。

print(4 == 4.0)
print(math.type(4.0))

浮動小数点数から整数への変換

math.tointeger()を使うと、浮動小数点数を整数に変換できます。小数部分がなければ整数を返し、小数部分があればnilを返します。

APIが真の整数を必要とする場合に便利です。

print(math.tointeger(8.0))
print(math.tointeger(8.5))

指数表記

Luaでは、eを使った指数表記で、非常に大きい浮動小数点数や非常に小さい浮動小数点数を記述できます。

1e3は1 times 10 to the power 3、つまり1000.0を意味します。結果は必ず浮動小数点数になります。

print(1e3)
print(2.5e-2)

整数の範囲

Luaの整数は64ビットで格納されるため、非常に広いものの有限の範囲を持ちます。定数math.maxintegerとmath.minintegerで上限と下限を確認できます。

浮動小数点数はより大きな絶対値を表現できますが、大きな整数では正確な精度が失われます。

print(math.maxinteger)
print(math.mininteger)

クイックチェック

整数と浮動小数点数について学んだことを確認しましょう。

まとめ

Luaの数値には、2つのサブタイプがあることを学びました。整数(小数部分のない数)と浮動小数点数(小数を含む数)です。

math.type()を使って両者を区別できます。/は常に浮動小数点数を返し、//を使うと整数のままにできます。math.tointeger()は可能な場合に変換を行います。

次は、算術演算子について詳しく学びます。

よくある質問

「整数と浮動小数点数」レッスンは無料ですか?

はい。「整数と浮動小数点数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Lua Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Lua Academyコースには全4レッスンが含まれています。

「整数と浮動小数点数」で何を学びますか?

Luaが数値を表現する方法を学びます。 ブラウザで直接実行するハンズオンコードでLua Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Lua Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLua Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「整数と浮動小数点数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLua Academyレッスンでコードを書いて実行できますか?

はい。すべてのLua Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 整数と浮動小数点数
  2. 算術演算子
  3. mathライブラリ
  4. 数値のフォーマット
← Lua Academyに戻る