📜  Lua 数字 - Lua (1)

📅  最后修改于: 2023-12-03 14:44:04.958000             🧑  作者: Mango

Lua 数字

Lua 是一个面向过程、函数式、面向对象的脚本语言。它内置了数字类型,支持整数、浮点数等多种数据类型。

整数

Lua 内置的整数类型为 integer。在 Lua 中,整数常量可以采用十进制、十六进制、八进制等多种形式表示。例如:

local a = 10       -- 十进制整数
local b = 0xA      -- 十六进制整数
local c = 0o12     -- 八进制整数

Lua 采用了两种数据类型分别存储整数:包括 32 位 integer 和 64 位 lua_Integer。在不同的平台上,这两种类型所占的字节数也不同。Lua 会自动选择最适合当前平台的整数类型。

浮点数

Lua 内置的浮点数类型为 number。与整数一样,Lua 中的浮点数常量可以直接使用十进制表示法。例如:

local a = 3.14     -- 浮点数
local b = 1.21e-3  -- 科学计数法表示的浮点数

浮点数常量中可以包含小数点、指数标记 eE,以及正负号。使用 eE 表示指数时,后面的值表示 10 的多少次幂。

数值运算

Lua 支持常见的数值运算符,包括加减乘除、取模、幂等操作。例如:

local a = 10
local b = 5
print(a + b)   -- 15
print(a - b)   -- 5
print(a * b)   -- 50
print(a / b)   -- 2.0
print(a % b)   -- 0
print(a ^ b)   -- 100000

Lua 还支持自增、自减操作:

local a = 10
a = a + 1   -- 等价于 a++
a = a - 1   -- 等价于 a--
数值库

为了更方便地进行高级数学计算,Lua 还提供了一些常用的数值库。这些库包括三角函数、指数函数、对数函数等,可以使用 math 模块进行访问。

下面是一些常用的数值函数及其示例用法:

-- 取绝对值
print(math.abs(-10))   -- 10

-- 取反
print(math.neg(10))    -- -10

-- 取余数
print(math.fmod(10,3)) -- 1

-- 计算 e 的幂
print(math.exp(1))     -- 2.0

-- 计算 x 的自然对数
print(math.log(10))    -- 2.302585

-- 计算以 2 为底的对数
print(math.log(10,2))  -- 3.321928

-- 计算 x 的平方根
print(math.sqrt(10))   -- 3.162278

-- 计算 x 的正弦值(x 度)
print(math.sin(math.rad(90)))   -- 1.0

-- 计算 x 的反正弦值(-1 ≤ x ≤ 1)
print(math.asin(1))    -- 1.570796

-- 计算 x 的余弦值(x 度)
print(math.cos(math.rad(90)))   -- 0.0

-- 计算 x 的正切值(x 度)
print(math.tan(math.rad(45)))   -- 1.0

-- 计算 x 的角度的反正切值
print(math.atan(1))    -- 0.785398
总结

本文介绍了 Lua 支持的整数和浮点数类型,以及常见的数值运算和数值函数。开发者可以根据实际需要选择合适的数值类型和函数进行使用。