Lua: converting from float to int

后端 未结 4 1891
耶瑟儿~
耶瑟儿~ 2021-02-02 06:51

Even though Lua does not differentiate between floating point numbers and integers, there are some cases when you want to use integers. What is the best way to covert a number t

4条回答
  •  暖寄归人
    2021-02-02 07:32

    @Hofstad is correct with the math.floor(Number x) suggestion to eliminate the bits right of the decimal, you might want to round instead. There is no math.round, but it is as simple as math.floor(x + 0.5). The reason you want to round is because floats are usually approximate. For example, 1 could be 0.999999996

    12.4 + 0.5 = 12.9, floored 12

    12.5 + 0.5 = 13, floored 13

    12.6 + 0.5 = 13.1, floored 13

    local round = function(a, prec)
        return math.floor(a + 0.5*prec) -- where prec is 10^n, starting at 0
    end
    

提交回复
热议问题