Luaで文字列を整数に変換するにはどうすればよいですか?ありがとうございました。ルア文字列をintにする
私はこのような文字列があります。
a = "10"
私はそれが10、数値に変換することを希望します。
Luaで文字列を整数に変換するにはどうすればよいですか?ありがとうございました。ルア文字列をintにする
私はこのような文字列があります。
a = "10"
私はそれが10、数値に変換することを希望します。
tonumber
functionを使用してください。 a = tonumber("10")
のように。
Lua 5.3では、(64ビットのデフォルトの)整数はそれに応じて扱われます(http://www.lua.org/manual/5.3/manual.html)。「小数点または指数付きの数値定数は浮動小数点数を表します。それ以外の場合は整数を表します。 –
ルアのすべての数字は浮動小数点数です(編集:ルア5.2以下)。あなたが本当に「INT」(あるいは、少なくとも、この動作を複製する)に変換したい場合は、この操作を行うことができます:あなたが明示的に(それが何であれ、本当にまたは)文字列を変換
local function ToInteger(number)
return math.floor(tonumber(number) or error("Could not cast '" .. tostring(number) .. "' to number.'"))
end
た場合そして、Javaでキャストするような(int)のような数字を切り捨てます。
編集:これはまだLuaの5.3で、でもmath.floor()
はnumber
がfloatである場合などnumber // 1
はまだfloatを返しますオペレータに対し、整数を返すようLuaの5.3は、実際の整数値を持っていると思った作品。 http://hyperpolyglot.org/
http://hyperpolyglot.org/more#str-to-num-note
PS:私はHyperpolyglotをチェックするためにお勧めします
は、素晴らしい比較を持っています。実際には、Luaはint型ではなくdouble型に変換されます。
数値タイプは、実数(倍精度浮動小数点) の数を表します。
あなたは数に変身したい文字列を変数S
それは数を返しますS
に数字と数字だけがあることを提供
a=tonumber(S)
、 であると言います数値ではない文字(浮動小数点数を除く)がある場合 それはゼロを返します
local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))
出力
string
number
あなたはそれで10 intとして "10" を維持するためのアクセサを作ることができます。
例:
x = tonumber("10")
あなたはx変数を印刷する場合、それが出力int型10とではない "10"
Pythonのプロセスのように同じ
のx = INT( "10" )
ありがとうございます。
より明確な選択肢は、番のです。
5.3.2から、この関数は、整数、浮動小数点(ポイントがある場合)、および16進数(文字列が "0x"または "0X"で始まる場合は整数と浮動小数点)を自動的に検出します。
次のスニペットは短いが、等価ではありません。
a + 0 -- forces the conversion into float, due to how + works
a | 0 -- (| is the bitwise or) forces the conversion into integer.
--However, unlike math.tonteger, it errors if it fails
はあなたが
local stringnumber = "10"
local a = tonumber(stringnumber)
print(a + 10)
output:
20
を置くべきである正確なリンクは強制に関するセクションです:[5.1](http://www.lua.org/manual/5.1/manual.html#2.2.1)、[5.2](htt p://www.lua.org/manual/5.2/manual.html#3.4.2)。 – lhf
@NicolBolas:最初のGoogleの結果である質問をするための+1で、直感的な回答が得られます。 – ereOn
+1この噛んだトロールを補うために+1ニコール:D –