数值 - number(Lua)

数值 - number

在 Lua 5.3 之前版本,number 只有一种数值形式,就是双精度浮点类型。从Lua 5.3 版本后,Lua 的 number 数据类型引入了整形,从而出现了两种数值表示,一种是 64位 整型 integer 和 双精度浮点型 float。

--如下表示
a = 1 --integer
b = 1.0 --float
c = 1e4 --float

当数值常量为 小数 或 指数时,number会当作 float,其余为整数

算术运算

number由于区分了整型和浮点型,所以在算术运算要注意区分其区别。

操作符 描述
+ 加法
- 减法
* 乘法
/ 除法,保留小数位
% 取余
^ 乘幂
- 负号
//(Lua5.3之后才有的) 除法,不保留小数位(无论整数还是浮点数)

+ 加法 整数相加为整数,除此之外为浮点数

- 减法 整数相减为整数,除此之外为浮点数

* 乘法 整数相乘为整数,除此之外为浮点数

\ 除法(保留小数位),无论整数还是浮点数,结果都是浮点数

^ 乘幂,无论整数还是浮点数,结果为浮点数

\\ 除法(不保留小数位),整数相除为整数,其余为浮点数

数学库

  • 判断类型

math.type:判断number类型是 integer 还是 float (Lua 5.3)

  • 取整

math.floor:向下取整

math.ceil: 向上取整

math.modf:向零取整,返回两个值,一个为整数,一个为小数(小数部分)

a, b = 1.5, -1.5
print(math.floor(a), math.floor(b)) --1 -2
print(math.ceil(a), math.ceil(b)) -- 2 -1
print(math.modf(a)) -- 1   0.5
print(math.modf(b)) -- -1   -0.5

math.maxintegermath.mininteger 分别是 最大整数 和 最小整数,如果整数超出表达(数值溢出),则会出现回环。

一般情况下不会溢出,但还是需要注意。

你可能感兴趣的:(Lua学习,lua,开发语言)