Lua学习记录 — (6)数字

本文介绍了Lua语言中的数字类型及其特点,并详细列举了Lua标准库提供的数学函数,包括绝对值、取整、三角函数等,以及如何生成随机数。

Numbers.lua

------------------------------------ 数字类型 ------------------------------------
--[=[
改变数据类型,意味着重新分配内存空间;
Numbers是不可更改对象,改变其值,相当于换个引用;
]=]
---- 只有numbers这个类型(标准Lua使用64位的整数和双精度浮点数)
intVar = 10
floatVar = 10.1
print(math.type(intVar),intVar)                                    --> integer  10
print(math.type(floatVar),floatVar)                                --> float    10.1
print(type(intVar),type(floatVar))                                 --> number   number

print(math.tointeger("121"))                                       --> 121

------------------------------------ 数字函数 ------------------------------------

---- 一般数学函数
-- abs(x):绝对值
print(math.abs(-3.33))                                          --> 3.33
-- ceil(x):获取上入整数
print(math.ceil(2.1))                                           --> 3
print(math.ceil(-2.9))                                          --> -2
-- floor(x):获取舍整数
print(math.floor(2.9))                                          --> 2
print(math.floor(-2.1))                                         --> -3
-- fmod(x,y):返回x除以y的余数
print(math.fmod(5,3))                                        --> 2
print(math.fmod(7,3))                                        --> 1
-- log(x,base):base为底x的对数(base默认为e)
print(math.log(25,5))                                           --> 2.0 (Lua5.3)
print(math.log(2.718281828459^2))                               --> 2.0
-- log10(x):10为底x的对数
print(math.log10(100))                                          --> 2.0
-- pow(x,y):x**y的值
print(math.pow(2,2),2^2)                                     --> 4.0 4.0
-- sqrt(x):x的平方根
print(math.sqrt(25))                                            --> 5.0
-- exp(x):e的x次幂
print(math.exp(1))                                              --> 2.718281828459
-- max(x1,x2...):返回参数中最大的值(参数可以为序列)
print(math.max(2,4,1,22,9))                                  --> 22
-- min(x1,x2...):返回参数中最小的值(参数可以为序列)
print(math.min(2,4,1,22,9))                                  --> 1
-- modf(x):获取x的小数部分和整数
print(math.modf(33.33))                                         --> 33, 0.33

---- 三角函数
-- cos(x):x弧度的余弦值
print(math.cos(math.pi/3))                                      --> 0.5
print(math.cos(math.pi))                                           --> -1.0
-- acos(x):x的反余弦弧度值
print(math.acos(0.5)/math.pi*180)                            --> 60.0
print(math.acos(-1))                                            --> 3.1415926535898
-- sin(x):x弧度的正弦值
print(math.sin(math.pi/3))                                      --> 0.86602540378444
print(math.sin(0))                                              --> 0.0
-- asin(x):x的反正弦弧度值
print(math.asin(0.866025403784)/math.pi*180)                 --> 59.99999999995
print(math.asin(0))                                             --> 0.0
-- tan(x):x弧度的正切值
print(math.tan(math.pi/3))                                      --> 1.73205080757
-- atan(x):x的反正切弧度值
print(math.atan(1.73205080757)/math.pi*180)                  --> 60.000000000016
-- atan2(y,x):给定x和y坐标值的反正切值
print(math.atan2(math.sqrt(3)/2.0,1.0/2.0)/math.pi*180)--> 60.0
-- deg():弧度转角度
print(math.deg(math.pi/3))                                      --> 60.0
-- rad():角度转弧度
print(math.rad(60.0))                                           --> 1.0471975511966

---- 随机数
-- random([m[,n]]):无参数[0,1);1个参数[1,n];2个参数[m,n]
print(math.random())                                               --> 0.001251220703125
print(math.random(10))                                         --> 6
print(math.random(10,100))                                  --> 27
-- randomseed():改变随机数生成器的种子

----  数学常量
-- 常量π
print(math.pi)                                                     --> 3.1415926535898
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值