Lua基础(五)数值

一   整数和浮点数

说明: 具有'十进制小数'或者'指数的数值'会被当作'浮点'数值,'否则'会被当作'整数值'

说明:'整数值'和'浮点型值'的类型都是"number"

++++++++++++++'效果'++++++++++++++

所以:它们是可以'互相转化'的

整数和浮点数值的类型都是"number",所以它们可以'相互转化'

具有'相同算术值'的'整数值和浮点数值'在Lua语言是'相等'的

需求: '区分'整数和浮点数值

二  算术运算

⑤  特殊场景一

说明:'操作数'一个是'整数型'值、一个是'浮点型'值时,Lua语言会在进行'算术运算前'先将整数型值'转换'为浮点型值

备注:'+'、-、'*'、/ '均可'

⑥  floor除法

特点:'floor除法'会对得到的'商'向'负无穷'取'整'

细节

1)先按照'除法'进行计算-->'除法的规则'

2)如果得到的结果含小数,则向'负无穷'取整数'带小数点',如果是整数,则'原样输出'

<-----------------(-1)--0--1------------------

⑦  取模运算

'计算方式': a % b == a - (a // b) * b

a % b == a - floor(a / b) * b

细节1: '取模得到的结果'符号永远与'第二个操作数'的符号保持一致-->'符号一致'

需求: 保留'n位'小数-->'n为数字'

x - x % 1e-n

例如: 保留'三位'数字

x - x % 1e-3

需求2: 将任意范围的'角度'归一化到[0,2π)

angle % (2 * math.pi)

二  关系运算符

(1)总体描述

201552893006602.jpg (626×426)

说明1:关系运算符结果都是'boolean'类型

说明2:数值'比较'的时候,永远忽略'子类型-->'interger、float'

三  数学库

math 'module'常用的函数

random、randomseed、floor、ceil、modf

(1)随机数发生器

注意:Lua5.3以后,参数一定要为'整数',否则会'返回错误'

Lua生成比较理想的随机数的方法

说明1:'randomseed'用于设置'伪随机数'发生器的种子,该函数的'唯一参数'就是数值类型的种子

目的: 尽可能'保证'每次程序运行时'不会'生成'相同的伪随机数'序列

说明2:系统固定'使用1'为种子初始化'伪随机数发生器'

++++++++++++++++++获取'当前系统时间(秒)'作为随机种子++++++++++++++++++

math.randomseed(os.time())

math.randomseed(tostring(os.time()):reverse():sub(1, 7)) –'设置时间种子'

lua math.random伪随机问题浅析

(2)取整函数

说明1: floor(x)-->'向下取整',或者说"向下舍入"、"向零取舍"-->向'负无穷'取整

说明2: ceil(x) -->'天花板'-->'向上取整'-->'向正无穷取整'

说明3: modf(x) -->向'零'方向取整-->返回两个数值-->一个是'整数',一个是'小数'

需求:'四舍五入'

math.floor(x + 0.5) 

(3)表示范围

最大数值:2^63 -1

(4)检查一个数字能否转换成整数

math.tointerger(x)

功能:如果能'转化为整数'则'输出整数'、否则保持'原来的值'不变

三   运算符优先级

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值