【问题标题】:Modulus of negative number [duplicate]负数的模数[重复]
【发布时间】:2018-06-18 15:36:52
【问题描述】:

-14%3=?

C 给我 -2,python 给我 1。我也尝试过很多语言,它们都给 1 或 -2。然后我再次检查,发现编译器给出 -2,解释器给出 1。但是 JavaScript 作为解释器语言,给出 -2。为什么?

【问题讨论】:

  • 我看不出它与编译或解释语言有什么关系。
  • 不同的语言,不同的规则。每个结果背后都有逻辑;逻辑不同,仅此而已。
  • @JonathanLeffler op 只是询问逻辑是什么。就是这样
  • 如果你有负数就加3。从技术上讲,这两个数字代表模块世界下的相同数字
  • @jsheeran 那么为什么答案如此相似?

标签: python c


【解决方案1】:

这不是编译语言与解释语言的问题。每种语言都有自己的规则。

对于 Python,您始终会得到与 second 运算符符号相同的结果。

模运算符总是产生与第二个操作数(或零)具有相同符号的结果;结果的绝对值严格小于第二个操作数的绝对值

https://docs.python.org/2/reference/expressions.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2020-11-30
    相关资源
    最近更新 更多