当试图打印除法时,将分数转换为小数

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

 print ("\n\t你将使用什么数学符号?")
      ms = io.read()

-- 主函数
 function TYPCALC()

        --如果用户输入了某些数学符号
  if (ms == "division") then

      print ("\n\t被除数是什么?")
          local rn = io.read()

      print ("\n\t除数是什么?")
          local ln = io.read()

          --将用户的答案转换为字符串
          local cln = tonumber(ln)
          local crn = tonumber(rn)

          --执行方程
          io.write (ln / rn)
       end;

  end ;

    TYPCALC()
点赞
用户2858170
用户2858170

Lua没有分数类型。你需要自己计算分子和分母。然后将其打印出来。

如果你只打印或写出 (number/number2) 这个表达式将会首先被计算,导致得到一个小数。函数将使用这个数字的本地拷贝。

local denominator = 12 -- 或者在你的情况下一些计算出的值
local numerator = 1

print(numerator .. "/" .. denominator)

将打印出 1/12

另一个备注:

--将用户的答案转换成字符串
local cln = tonumber(ln)
local crn = tonumber(rn)

如果你想将一个数字转换成字符串,你必须使用 tostring(),而不是 tonumber()。

2017-08-18 07:04:47
用户7742986
用户7742986

我修复了我的 bug,事实证明我不得不交换变量的位置来进行除法运算。通常在 Lua 中方程式不需要做出这样的改变,但我必须这样做。我在减法上遇到了同样的问题,这也解决了。感谢大家的帮助。这是我的更改:

io.write (ln / rn)

改为

io.write (rn / ln)
2017-08-18 20:42:22