非常に長い整数を返そうとしていますが、結果は "7.6561197971049e+016" として返されます。76561197971049296 を返すにはどうすればよいですか?
local id64 = 76561197960265728
Z = string.match("STEAM_0:0:5391784", 'STEAM_%d+:%d+:(%d+)')
Y = string.match("STEAM_0:0:5391784", 'STEAM_%d+:(%d+):%d+')
--For 64-bit systems
--Let X, Y and Z constants be defined by the SteamID: STEAM_X:Y:Z.
--Let V be SteamID64 identifier of the account type (0x0110000100000000 in hexadecimal format).
--Using the formula W=Z*2+V+Y
if Z == nil then
return "none"
else
return Z*2+id64+Y
end
このコードでlbc任意精度をインストールしました
return bc.add(bc.number(id64),bc.number(2)):tostring()
70000000000000002 を返しますが、id64 から 3 桁を削除すると正しく表示されます。
数字を削除せずに正しい結果を得るにはどうすればよいですか?