🔢

Luauにおける数値リテラルの桁区切りについて

2025/02/24に公開

Luau では、数値リテラル内でアンダースコア(_)を用いた桁区切り記法が利用可能です。
これにより、長い数値も桁ごとに区切って記述でき、コードの可読性を上げることができます。

Luau における数値リテラルの桁区切りの仕様

local num: number = 1_000_000

上記のように、数字と数字の間にアンダースコアを記述することで桁区切りが行われます。
内部的には、1_000_0001000000 として処理されます。

  • 記法上の制約
    1000_ は暗黙的に 1000 に変換されますが、_1000 は構文エラーとなるため、数値リテラルの先頭にはアンダースコアを置くことはできません。

桁区切り数値リテラル同士の計算

以下のように、桁区切り数値リテラル同士の計算も通常通り行えます。

--!strict
local number1: number = 1_000_000
local number2: number = 13_000_000

-- 数値同士の演算も通常通り行えます。
local total: number = number1 + number2

print("数値1: " .. number1) -- 出力例:1000000
print("数値2: " .. number2) -- 出力例:13000000
print("合計: " .. total)    -- 出力例:14000000

Discussion