我怎样才能做到以下几点?
local d = getdecimal(4.2) --> .2
答案 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)