《Lua程序设计》之 数值

《Lua程序设计》之 数值,第1张

在Lua 52及之前的版本,所有数值都以双精度浮点格式表示,从53版本开始,Lua语言的number分为integer的64位整型和被称为float的双精度浮点型,若想要32位的整型和单精度浮点类型,可以将Lua 53编译为精简Lua(Small Lua)模式

可以使用%a参数进行格式化输出,如:

这种格式很难阅读,但是可以保留所有浮点数的精度,并且比十进制转换速度更快

// 区分整数和浮点数,由于53版本之前没有整数的概念,所以mathfloor永远返回整数,// 的 *** 作数只要有一个浮点数,则向下取整返回浮点数

取模运算的定义:

由此可知,取模和取余数差不多,当想要一个值不超过某个范围的时候,就对该值进行取模, 在整数的情况下, a % b 取模的值永远在[1,b-1]范围内,即 5 % 3的取模结果在[1,3]之间

Lua语言的关系运算六种

标准数学库math,包括三角函数(sin,cos,tan,asin等)、指数函数、取整函数、最大和最小函数max和min,random以及常量pi和huge(最大可表示数值,在大多数平台上代表inf)

mathrandom

mathrandomseed 用于设置伪随机数发生器的种子,看例子就明白了了

mathrandomseed每次设置一样的值,则mathrandom就会生成一样的随机数,不管mathrandom带不带参数。

三个取整函数:

floor 向负无穷取整;

ceil 向正无穷取整;

modf 向0取整,并会返回小数部分作为第二个结果;

如果想将数值x向最近的整数取整,这个问题没看懂??????

数学库中的常量定义了整型值的最大值mathmaxinteger和最小值mathmininteger

这段内容也没完全看懂?????

整型转行成浮点型

浮点型转行成整型

可以充分利用mathtointeger函数来判断一个数值是否为整数

从上到下,优先级从高到低

在二元运算符中,除了幂运算和连接 *** 作符是右结合外,其他都是左结合

Lua 53 支持的最大整数为2^63,而Lua 52支持的最大整数为2^53,由于52及以下版本没有整数,所以跟整数相关的函数都不支持,如mathtype()、mathmaxinteger、mathmininteger、mathtointeger等

lua没有什么固定的编译器可以使用记事本编译不过我推荐使用2种1种是NotePad++这只是个编写工具,没法直接运行(准确的说其实也不是没法运行,要配置一系列参数后也是可以运行的,但是容易出错,并且出错后要关闭程序重新打开才会恢复)另一种是官方的编译器sciTE可以到lua的官方网站>

lua官方手册描述如下

函数有两种调用方式

 local t = ostime()  得到当前系统的时间戳(UTC +0) ;

 local t = ostime({year = 2020,month = 2,day = 11,hour = 11,min = 24,sec =0 }) 得到2020-2-11 11:24:00 的时间戳(UTC+0),这里需要注意的是如果以table 方式传入当前的日历时间(年月日时分秒),函数会假定你传入的时间是本地时间(带时区),会在转化的时候减去系统的时区来进行转换!

源码如下

从上面的源码可以看出 不传入参数的时候使用的是C函数 time(NULL) 返回,带参数的时候通过mktime 来转化返回,mktime 就是带了时区转化!

 lua的官方描述

这里支持了很多种格式化的方式来输出

这里主要记录两种方式的使用

local t = osdate("t",time) 和 local t = osdate("!t",time)

即是否带 "!" 的转化方式:如果没有带 "!" 则代表转化的时候需要进行时区的转换;带了则不需要进行时区的转换

源码如下

   带了 "!"  的时候则 调用的是C函数 gmtime 简单的把time 时间戳转化成 日历时间,不带的时候就先调用了localtime 来进行转换,这里就把时区带进来进行转换的!

ostime() <== 返回当前系统的日历时间osdate() <== 返回本地化的时间字符串,这里是"11/28/08 17:23:37“osclock() <== 返回执行该程序CPU花去的时钟秒数,这里是1156726

以上就是关于《Lua程序设计》之 数值全部的内容,包括:《Lua程序设计》之 数值、lua用os.clock()计时的结果和实际使用的时间不一样、lua os.time os.date 使用总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9694555.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存