游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   发抖小序猿

Lua学习笔记之math(数学函数库)

个人分类: lua | 2018-9-21 11:11

math.pi 为圆周率常量 = 3.14159265358979323846

abs

取绝对值

math.abs(-15)

15

acos

反余弦函数

math.acos(0.5)

1.04719755

asin

反正弦函数

math.asin(0.5)

0.52359877

atan2

x / y的反正切值

math.atan2(90.0, 45.0)

1.10714871

atan

反正切函数

math.atan(0.5)

0.463647609

ceil

不小于x的最大整数

math.ceil(5.8)

6

cosh

双曲线余弦函数

math.cosh(0.5)

1.276259652

cos

余弦函数

math.cos(0.5)

0.87758256

deg

弧度转角度

math.deg(math.pi)

180

exp

计算以e为底x次方值

math.exp(2)

2.718281828

floor

不大于x的最大整数

math.floor(5.6)

5

fmod (mod)

取模运算

math.mod(14, 5)

4

frexp

把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n

math.frexp(10.0)

0.625    4

ldexp

计算value * 2的n次方

math.ldexp(10.0, 3)

80 = 10 * (2 ^3)

log10

计算以10为基数的对数

math.log10(100)

2

log

计算一个数字的自然对数

math.log(2.71)

0.9969

max

取得参数中最大值

math.max(2.71, 100, -98, 23)

100

min

取得参数中最小值

math.min(2.71, 100, -98, 23)

-98

modf

把数分为整数和小数

math.modf(15.98)

15    98

pow

得到x的y次方

math.pow(2, 5)

32

rad

角度转弧度

math.rad(180)

3.14159265358

random

获取随机数

math.random(1, 100)
math.random(100)

获取1-100的随机数

randomseed

设置随机数种子

math.randomseed(os.time())

在使用math.random函数之前必须使用此函数设置随机数种子

sinh

双曲线正弦函数

math.sinh(0.5)

0.5210953

sin

正弦函数

math.sin(math.rad(30))

0.5

sqrt

开平方函数

math.sqrt(16)

4

tanh

双曲线正切函数

math.tanh(0.5)

0.46211715

tan

正切函数

math.tan(0.5)

0.5463024

使用计算方式

  • 使用%运算符,得到的结果是数字。
  • x%1 表示x的小数部分,x-x%1 表示x的整数部分。

使用函数库

  • math.ceil()
  • math.ceil(12.2)//返回13
  • math.ceil(12.7)//返回13
  • math.ceil(12.0)// 返回12
  • 使用math.modf(x/y)此函数,第一参数返回整数部分,第二个参数返回小数部分

    t1,t2 = math.modf(232.33).."str"

  • 得到t1=232str

使用字符串格式化

  • 得到的结果是字符串形式
  • string.format(“%d”, 17.325) //输出17
  • 格式控制符以%开头,常用的有以下几种

     %s    -  接受一个字符串并按照给定的参数格式化该字符串
    
%d    - 接受一个数字并将其转化为有符号的整数格式
    
%f    -  接受一个数字并将其转化为浮点数格式(小数),默认保留6位小数,不足位用0填充
    
%x    - 接受一个数字并将其转化为小写的十六进制格式
    
%X    - 接受一个数字并将其转化为大写的十六进制格式

  • str = string.format("字符串:%s\n整数:%d\n小数:%f\n十六进制数:%X","qweqwe",1,0.13,348)

    print(str)

     

    —- 输出结果:

    字符串:qweqwe

    整数:1

    小数:0.130000

    十六进制数:15C

  • %f的特殊用法
    
%0.3f      中的小数点右边的数字表示小数点后面保留多少位,小数点前面的数字表示位数不足时的填充数,通用用0填充。
    
格式化一个小数,保留2位小数

    print(string.format("%0.2f",34.2344))  —-> 34.23 
  • 更多用法

    %c - 接受一个数字,并将其转化为ASCII码表中对应的字符
    
%d, %i - 接受一个数字并将其转化为有符号的整数格式
    
%o - 接受一个数字并将其转化为八进制数格式
    
%u - 接受一个数字并将其转化为无符号整数格式
    
%x - 接受一个数字并将其转化为十六进制数格式,使用小写字母
    
%X - 接受一个数字并将其转化为十六进制数格式,使用大写字母
    
%e - 接受一个数字并将其转化为科学记数法格式,使用小写字母e
    
%E - 接受一个数字并将其转化为科学记数法格式,使用大写字母E
    
%f - 接受一个数字并将其转化为浮点数格式
    
%g(%G) - 接受一个数字并将其转化为%e(%E,对应%G)及%f中较短的一种格式
    
%q - 接受一个字符串并将其转化为可安全被Lua编译器读入的格式
    
%s - 接受一个字符串并按照给定的参数格式化该字符串


    为进一步细化格式, 可以在%号后添加参数.参数将以如下的顺序读入:

    (1) 符号:一个+号表示其后的数字转义符将让正数显示正号.默认情况下只有负数显示符号.
    
(2) 占位符: 一个0,在后面指定了字串宽度时占位用.不填时的默认占位符是空格.
    
(3) 对齐标识: 在指定了字串宽度时,默认为右对齐,增加-号可以改为左对齐.
    
(4) 宽度数值
    (5) 小数位数/字串裁切:在宽度数值后增加的小数部分n,若后接f(浮点数转义符,如%6.3f)则设定该浮点数的小数只保留n位,若后接s(字符串转义符,如%5.3s)则设定该字符串只显示前n位.

    在这些参数的后面则是上述所列的转义码类型(c, d, i, f, ...).

    1. string.format("%%c: %c", 83)  输出S
    2. string.format("%+d", 17.0)              输出+17
    3. string.format("%05d", 17)               输出00017
    4. string.format("%o", 17)                 输出21
    5. string.format("%u", 3.14)               输出3
    6. string.format("%x", 13)                 输出d
    7. string.format("%X", 13)                 输出D
    8. string.format("%e", 1000)               输出1.000000e+03
    9. string.format("%E", 1000)               输出1.000000E+03
    10. string.format("%6.3f", 13)              输出13.000
    11. string.format("%q", "One\nTwo")         输出"One\                                           Two"
    12. string.format("%s", "monkey")           输出monkey
    13. string.format("%10s", "monkey")         输出    monkey
    14. string.format("%5.3s", "monkey")        输出  mon</font>
0 0

作者的其他最新博客

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号
返回顶部