代码之家  ›  专栏  ›  技术社区  ›  rnso

为什么这个简单的红色计算的答案是错误的

  •  0
  • rnso  · 技术社区  · 7 年前

    >> (100 - 55) / (100 - 75)
    >> ((100 - 55) / (100 - 75))
    >> to-float ((100 - 55) / (100 - 75))
    >> probe ((100 - 55) / (100 - 75))
    >> print ((100 - 55) / (100 - 75))
    >> (divide (subtract 100 55)  (subtract 100 75))
    

    当正确的值明显是1.8时,它们都给出了1.0或1的值(我已经检查了多次!)。问题出在哪里?

    编辑:输出:

    >> (100 - 55) / (100 - 75)
    == 1
    >> ((100 - 55) / (100 - 75))
    == 1
    >> to-float ((100 - 55) / (100 - 75))
    == 1.0
    >> probe ((100 - 55) / (100 - 75))
    1
    == 1
    >> print ((100 - 55) / (100 - 75))
    1
    >> (divide (subtract 100 55)  (subtract 100 75))
    == 1
    >> 
    

    Debian稳定Linux上的红色版本0.6.3。

    1 回复  |  直到 7 年前
        1
  •  2
  •   sqlab    7 年前

    最好的 结果可能是浮动。

    >> (100 - 55) / (100 - 75.0)
    == 1.8
    

    当然,越早越好。

    >> (to-float 100) - 55 / (100 - 75)
    == 1.8
    

    divide subtract to-float 100 55 subtract 100 75
    

    你需要再写一点,但是你保留了括号,你不需要考虑优先级