我正在编写一个计算器,我试图打印除法方程式的答案,但它将分数转换为小数。 我正在运行Lua 5.2.4
print ("\n\tWhat math symbol will you use?")
ms = io.read()
-- Main function
function TYPCALC()
--If user typed certain math symbols
if (ms == "division") then
print ("\n\tWhat number will be divided to?")
local rn = io.read()
print ("\n\tWhat will be dividing?")
local ln = io.read()
--convert users answers in to strings
local cln = tonumber(ln)
local crn = tonumber(rn)
--do equasion
io.write (ln / rn)
end;
end ;
TYPCALC()
答案 0 :(得分:2)
Lua没有分数类型。你必须自己计算分子和分母。然后打印出来。
如果您只是打印或写入(数字/数字2),将首先评估表达式,从而产生十进制数字。该函数将使用该数字的本地副本。
local denominator = 12 -- or some calculated value in your case
local numerator = 1
print(numerator .. "/" .. denominator)
将打印1/12
另一句话:
--convert users answers in to strings
local cln = tonumber(ln)
local crn = tonumber(rn)
如果要将数字转换为字符串,则必须使用tostring(),而不是tonumber()
答案 1 :(得分:-2)
我修复了我的错误,事实证明我必须切换变量位置来进行划分。通常你不应该为Lua中的方程式做这个,但我必须这样做。我通过减法遇到了同样的问题,它也解决了这个问题。谢谢大家的帮助。这是我的改变:
io.write (ln / rn)
到
io.write (rn / ln)