- 在Lua5.3版本后,加入了整形,所以在Lua中有整形和双精度浮点数。
- 在逻辑判断中整形和浮点型被认为是相等的
如果要知道number是整形还是浮点型,则需要用到数学库函数math.type()
Lua5.3加入运算符//
保留小数:x = math.pi
结果一定是浮点型
-
强制类型转换—math.tointeger(num)
整形与任意浮点进行任意运算,转换为浮点型
- 只有小于2^53整形才可以转换为浮点型;否则会照成精度丢失
math.tointeger(num):将浮点型转换整形(只有在可以转换时可转换)
三角函数所使用的参数都是弧度制,可以使用deg和rad进行转换
math.huge:Lua中number的inf,大于lua中的所有number,包括下面两种
- math.maxinteger:Lua中的最大整型
-
生成随机数
math.random():生成一个伪随机数
- math.random():不带参数,生成(0,1]的浮点型伪随机数
- math.random(n):带一个参数n,生成[1,n]的整形伪随机数
- math.random(n,m):带两个参数n、m,生成[n,m]的整形伪随机数
- math.randomseed(n):设置一个随机数种子,默认为1;(只要在开始随机之前设定一次)
- 生成一个有效的随机数:
- math.randomseed(tostring(os.time()):reverse():sub(1,6)):将系统时间移位轮转
- 注:不设定种子时,生成的是伪随机数,生成结果的规律是固定的 ```lua for i = 1, 3 do — body print(math.random(5)) end print() math.randomseed() for i = 1, 3 do — body print(math.random(5)) end —[[ 生成结果: 5 3 4
取整函数—四舍五入
- 向下取整:math.floor(num)
- 向上取整:math.ceil(num)
- 分离整数和小数:math.modf(num)
- 返回两个参数:math.modf(3.2) → 3 0.2
- 四舍五入:math.modf(x+0.5)