• Lua数值 - number


    数值 - number

    在 Lua 5.3 之前版本,number 只有一种数值形式,就是双精度浮点类型。从Lua 5.3 版本后,Lua 的 number 数据类型引入了整形,从而出现了两种数值表示,一种是 64位 整型 integer 和 双精度浮点型 float。

    --如下表示
    a = 1 --integer
    b = 1.0 --float
    c = 1e4 --float
    
    • 1
    • 2
    • 3
    • 4

    当数值常量为 小数 或 指数时,number会当作 float,其余为整数

    算术运算

    number由于区分了整型和浮点型,所以在算术运算要注意区分其区别。

    操作符描述
    +加法
    -减法
    *乘法
    /除法,保留小数位
    %取余
    ^乘幂
    -负号
    //(Lua5.3之后才有的)除法,不保留小数位(无论整数还是浮点数)

    + 加法 整数相加为整数,除此之外为浮点数

    - 减法 整数相减为整数,除此之外为浮点数

    * 乘法 整数相乘为整数,除此之外为浮点数

    \ 除法(保留小数位),无论整数还是浮点数,结果都是浮点数

    ^ 乘幂,无论整数还是浮点数,结果为浮点数

    \\ 除法(不保留小数位),整数相除为整数,其余为浮点数

    数学库

    • 判断类型

    math.type:判断number类型是 integer 还是 float (Lua 5.3)

    • 取整

    math.floor:向下取整

    math.ceil: 向上取整

    math.modf:向零取整,返回两个值,一个为整数,一个为小数(小数部分)

    a, b = 1.5, -1.5
    print(math.floor(a), math.floor(b)) --1 -2
    print(math.ceil(a), math.ceil(b)) -- 2 -1
    print(math.modf(a)) -- 1   0.5
    print(math.modf(b)) -- -1   -0.5
    
    • 1
    • 2
    • 3
    • 4
    • 5

    math.maxintegermath.mininteger 分别是 最大整数 和 最小整数,如果整数超出表达(数值溢出),则会出现回环。

    一般情况下不会溢出,但还是需要注意。

  • 相关阅读:
    hive 中正则表表达式使用
    线程状态及线程之间通信
    Qt插件之自定义插件构建和使用
    怎么在相册里去水印?三种方法教你去除
    小程序中的权限设计
    redis的基本概念和常见问题的解决!
    DBA笔记(1)
    对Spring Bean的一些思考(对Bean的理解及命名问题)
    提示工程 vs 微调 vs RAG
    java计算机毕业设计ssm+vue市政工程资源互助平台
  • 原文地址:https://blog.csdn.net/m0_52361859/article/details/125470708