我怎样才能从lua中的浮点数中得到小数?

时间:2016-02-01 00:24:32

标签: lua

我怎样才能做到以下几点?

local d = getdecimal(4.2) --> .2

3 个答案:

答案 0 :(得分:5)

假设您只使用大于0的数字,模数是最好的方法:

print(4.2%1)

否则数学库中的fmod函数应该可以解决问题。

print(math.fmod(4.2,1))

答案 1 :(得分:1)

你可以通过获取数字并将其变成字符串来采取一些非范式的方法:

function getDec(num)  
return tostring(num):match("%.(%d+)")
end

print(getDec(-3.2))
--2

答案 2 :(得分:-1)

function getDecimal(inp)
 local x = tostring(inp)
 local found_decimal = false
 local output_stream = ""
    for i = 1, string.len(x) do
     if found_decimal == false then
      if string.sub(x, i+1, i+1) == "." then
       found_decimal = true
      end
    else
     output_stream = output_stream .. string.sub(x,i, i)
    end
  end
 return output_stream
end

它的作用是基本上返回小数点之后的所有内容。它是一个字符串。

如果你想将回报转回一个数字,请执行以下操作:

return tonumber("0" .. output_stream)