Number(数字)


描述

Lua 中的number(数字)是一种双精度浮点数字(或简称double(双精度))。例如:

  • 2
  • 5.13745484
  • -1874

Lua 当中,数字的范围可以从 -1.7 × 103081.7 × 10308(约 15 位数,正或负)。


有符号与无符号

数字的符号代表它是正数还是负数。有符号的数字可以是正数或负数,但没有符号的数字不能是负数。在 Lua 中,-00 是有区别的。


运算符

Lua 数学和关系 operators (运算符)可用于处理和比较数字。例如 math.sqrt()math.exp() 的数学函数可以在 math(数学)库中找到,且为了进行位操作,bit32 库也已被逆向移植。


数字分类

MiniStudio Lua 中,以下数字类型没有技术上的区别。不过在文档中,数字分类用来表明 API 成员涉及哪种数字。

int

int 数字类型指的是没有小数部分的数字(整数),例如 0、60-42。 当提供非整数时,预期整数的属性和函数可能会自动取整或报错。

Lua 中处理整数时,请注意以下事项:

数字的小数部分可以用 math.floor() 进行舍去。 你可以通过比较 math.floor(x) == x 来判断一个数字是否为整数。 要将一个数字向最近的整数取整(四舍五入),请用 math.floor(x + 0.5)

float

float 数字类型指的是单精度(32 位)浮点数。此类型不如一般数字精确,但差距通常不会造成影响。


类型自省

你可以通过使用 type(x)typeof(x) 来确定一个值是否为数字,当是数字时,两者都将返回字符串 number

local testInt = 2
local testDecimal = 5.13745484
local testString = "Hello"

print(type(testInt))
print(type(testDecimal))
print(type(testString))
Last Updated: