尝试打印除法时,它会将分数转换为小数



我正在编写一个计算器,我试图打印除法方程的答案,但它将分数转换为小数。 我正在运行Lua 5.2.4

print ("ntWhat math symbol will you use?") 
ms = io.read()
-- Main function
function TYPCALC() 
--If user typed certain math symbols
if (ms == "division") then
print ("ntWhat number will be divided to?")
local rn = io.read()
print ("ntWhat 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()

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((

我修复了我的错误,事实证明我必须切换变量的位置才能进行除法。通常你不应该对Lua中的方程这样做,但我不得不这样做。我在减法方面遇到了同样的问题,它也解决了这个问题。感谢大家的帮助。这是我的更改:

io.write (ln / rn)

io.write (rn / ln)