数值 - Hero · Lua · Lua程序设计读书笔记

数值常量

  1. 双精度浮点格式(和JS一样)
  2. 32位整型和单精度浮点型(5.3版本引入,目前是5.4.6)
  3. math.type()和type(), math.type能够区别数字类型

算术运算

  1. + - * / // % ^

// floor除法,结果向下取整, ^是幂运算

关系运算

  1. < > <= >= == ~=

~= 是不等于

数学库

  1. math.random()
  2. math.floor()
  3. math.ceil()
  4. math.modf() 向0取整,会返回小数部分作为第二个结果

表示范围

  1. 最大整数: 2^63 - 1(精简版使用32位)
  2. 出现溢出时会回环
  3. 1 / 7 * 7 结果是0.999999994 而不是1(5.1版本测试是1,直接在线上测试是1.0,这个需要再调研下,0.1 + 0.2 = 0.3,总之比JS处理的好多了)

惯例

  1. 整型总是可以转换为浮点型
  2. 注意超过最大值(2^53)次时这种转换会出现异常
  3. 可以通过与0进行按位或运算,可以把浮点型值强制转换为整型值(若值超出范围则会抛出异常)
  4. 另一种强制转换方式是math.tointeger(), 不是整数或超出范围则返回nil

运算符优先级


数值 - Hero · Lua · Lua程序设计读书笔记
https://wanmeishijie.xyz/notes/hero/lua/Lua程序设计读书笔记/数值/
作者
发布于
2023年11月26日
许可协议