在尝试打印分区时,它会将分数转换为小数

时间:2017-08-18 03:16:03

标签: lua floating-point division fractions rational-numbers

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

2 个答案:

答案 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)