lua5.3版本开始,number分为整型int(64)和双精度浮点型float类型,对于资源受限的平台可以使用int(32)。编程
两种类型可转换,同时具备相同值的两种类型相等,可以使用**math.type()**来获取类型。markdown
在lua5.3中,支持0x开头的十六进制常量。 还支持十六进制浮点数,由小数部分和以P或P开头的指数部分组成。编程语言
例如:函数
0xff -> 255
lua
0x1p-1 -> 0.5
spa
0xa.bp2 -> 42.75
code
注意:这里的p表明的2不是10 !orm
例如: 资源
string.format(“%a”,419) -> 0x1.a3p+8
string
虽然这种格式很难阅读,可是这种格式能够保留全部浮点数的精度,而且比十进制的转换速
度更快。
除了加(+)、 减(-) 、乘(*)、 除(/) 、取负数(-)等常见的算术运算外,lua语言还支持 取整除法[floor除法](//)、取模(%)、幂指运算(^)。
规则:两个操做数都是整型,那么结果也是整型;否做,结果就是浮点型值。
例如:
3.0/2.0 --> 1.5 (lua 5.3) 1.5 (lua 5.1)
3/2 --> 1.5 (lua 5.3) 1.5 (lua 5.1)
3.0/1 --> 3.0 (lua 5.3) 3 (lua 5.1)
3.0/1 --> 3.0 (lua 5.3) 3 (lua 5.1)
例如:
3//2 --> 1
3.0//2 --> 1.0
6//2 --> 3
-9//2 --> -5
取模运算遵循:若是操做数是整数,那么取模运算的结果也是整数。
取模运算的定义:a % b == a – ((a // b) * b)
对于整型操做数而言,取模运算的结果符号永远与第二个操做数的符号保持一致。对于任意的正常量K,即便x是负数,表达式x%K的结果永远在[0~K-1]之间。
例如:
7%3 --> 1
-7%3 --> 2
7%-3 --> -2
不一样编程语言对于负数取余的定义不同,所获得的结果也不同,因此小编在这里建议尽可能不要对负数取余。