不同语言的模运算符的区别

问题描述 投票:0回答:1

似乎取决于编程语言,模运算符答案有所不同。例如,对于c++之类的表达式,cJava-10%2都返回-1,而python3.x为相同的计算输出1。为什么会这样?

java python c++ c modulo
1个回答
0
投票

mod的行为因所使用的语言以及所使用的mod的实现方式而异。

这里的行为列表:https://en.wikipedia.org/wiki/Modulo_operation#In_programming_languages

在您的情况下,Python中%的结果采用除数的符号。

>>> 11%-2
-1
>>> -11%2
1

但是math.fmod相反。

>>> import math
>>> math.fmod(11,-2)
1.0
>>> math.fmod(-11,2)
-1.0

在Java中,mod获得分红的符号。

© www.soinside.com 2019 - 2024. All rights reserved.