0

我正在编写一个计算器,我试图打印除法方程的答案,但它却将分数转换为小数。我正在运行 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()
4

2 回答 2

2

Lua 没有分数类型。您必须自己计算分子和分母。然后打印它。

如果您只是打印或写入 (number/number2) 该表达式将首先被评估,从而产生一个十进制数。该函数将使用该号码的本地副本。

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

于 2017-08-18T07:04:47.813 回答
-2

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

io.write (ln / rn)

io.write (rn / ln)
于 2017-08-18T20:42:22.547 回答