Lua不显示小数点0的部分

本文探讨了Unity3D结合XLua环境下Lua5.3版本中数字处理的特点,特别是与Lua5.1相比,在整除操作时返回结果的小数部分差异。介绍了如何使用math.modf函数获取数字的整数和小数部分,并提供了一个实用的FormatNum函数来格式化数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的环境:Unity3D 5.3.7p4
XLua版本v2.1.6 基于Lua5.3 (https://github.com/Tencent/xLua)
在Lua中数字不区分整型或浮点型,所有都是number,当你在整除时,返回的结果中带有小数0,比如printf(100/10 ) ---输出10.0

注意:在Lua5.1.4的控制台模式,并不会出现此问题。如果输入100/10,则会打印出10,而不是10.0

数字函数

local n1,n2 = math.modf(x) :返回两个值,第一个为整数部分,第二个为小数部分
示例:local t1, t2 = math.modf(3.2) ---t1=3,t2=0.2

示例和格式化方法

Util.FormatNum(10/100) ---输出10
Util.FormatNum(0.1) ---输出0.1

---如果小数位数为0,则只保留整数
function Util.FormatNum (num)
    if num <= 0 then
        return 0
    else
        local t1, t2 = math.modf(num)
        ---小数如果为0,则去掉
        if t2 > 0 then
            return num
        else
            return t1
        end
    end
end

Lua 5.1和5.3的对比

下图中,左边为Lua5.1,右边为5.3,结果说明:Lua5.1并不会出现此问题,而5.3则会有。

363476-20180808173633117-1970177513.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值