游戏开发工具

number类型

上一节:boolean类型下一节:string类型

Lua number数据类型

lua的number类型,是默认当成双精度浮点类型来运算的。也就是说number会底层当做double类型来处理,精度是16~17位

在Lua 5.2及之前的版本中,所有的数值双精度类型的实浮点数格式表示

从Lua 5.3版本开始,Lua语言为数值格式提供了两种选择:

1、整型值:称为interger的64位整型

2、浮点型值:称为float的双精度浮点类型

以下几种写法都被看作是 number 类型:

print(type(2))
print(type(2.2))
print(type(0.2))
print(type(2e+1))
print(type(0.2e-1))
print(type(7.8263692594256e-06))


类型判断

type()函数

使用type()函数可以获取整型值和浮点型值的类型,返回的都是number(表示数值类型)

print(type(3)) 	        --number
print(type(3.5))		--number
print(type(3.14e3))		--number


math.type()函数

**如果想要区分整型值和浮点型值,**可以使用这个函数

print(math.type(3))		--integer
print(math.type(3.5))	        --float
print(math.type(3.14e3))       --float


十六进制表示

1、Lua也支持以0x开头的十六进制常量

2、Lua不仅支持十六进制的整型、还支持十六进制的浮点数

print(0xff)			--255
print(0x1A3)			--419
print(0x0.2)			--0.125

3、十六进制浮点数还可以由小数部分和以p或P开头的指数部分组成**

4、通过string.format()的%a参数可以对上面的这种格式进行格式化的输出

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

print(0x1p-1)				--0.5
print(string.format("%a", 419)) 	--0x1.a3p+8
print(string.format("%a", 0.5))	--0x1p-1


上一节:boolean类型下一节:string类型