gpt4 book ai didi

c - Lua - 检测整数

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:33 25 4
gpt4 key购买 nike

Lua 的行为如下:

print( 1 ) -- prints 1
print( 1.0 ) -- prints 1.0

由于 Lua 使用 lua_Number,这是一个浮点值(float 或 double),适用于所有数字类型(即整数和实数),我猜它以某种方式跟踪实际数值的性质,否则 print( 1 ) 将打印 1.0,因为 1 是整数的信息在转换时会丢失1 到 lua_Number 在 Lua 代码中的某个点。

有没有办法使用 Lua 5.3.2 的 C API 来检测 lua_Number 最初是整数还是实数?

假设我想编写一个需要整数或实数的 native 函数。在弹出参数时,我怎么知道给定值是 1 还是 1.0

谢谢。

PS:我已经看到这个答案了:Test if Lua number is integer or float但这并没有解决我的问题,因为检查 number == (int) number 是否表明任何像 N.0 这样的实数都是整数。

最佳答案

Lua 5.3 使用lua_Number(默认:double)表示 float 和lua_Integer(默认:long long) 用于整数。以前的版本只有浮点类型。 API 具有函数 lua_isinteger 来确定一个值是否表示为整数。

关于c - Lua - 检测整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com