如何检查一个数字是否有整数表示

如何检查一个数字是否有整数表示

该数字可以是浮点数或双精度浮点数。

点赞
用户107090
用户107090

在 Lua 5.3+ 中,可以使用 math.tointeger 函数:

math.tointeger (x)

如果值 x 可转换为整数,则返回该整数。否则,返回 nil。

2021-02-25 10:12:42
用户11740758
用户11740758

或许可以检查数字中的小数点,以确定是浮点数还是整数?

那么请看这里...

dotchk=function(...);
local args={...}
assert(args[1],'Need argument')
local _,b=tostring(args[1]):gsub('%.','') -- 检查小数点

if b>0 then
 print('找到浮点数:',args[1])
 return true
else
 print('未找到小数点:',args[1])
 return false
end

end

三个例子...

>dotchk(math.pi)
找到浮点数:    3.1415926535898
true
>dotchk(math.maxinteger)
未找到小数点: 9223372036854775807
false
>dotchk(math.mininteger)
未找到小数点: -9223372036854775808
false
2021-02-25 13:02:05