在Groovy 3.0中(Groovy版本:3.0.0-RC-1JVM: 11.0.2)
println 3**3**3
println 3.0**3.0**3.0给出
19683
19683在Python (Python3.5.2)中,我从终端获得
>>> 3**3**3
7625597484987
>>> (3**3)**3
19683官方网站没有给出任何指示。
到目前为止,Groovy中是否出现了故障?
编辑
答案在堆栈过流,math.stackexchange表明,数学惯例是,指数是正确的结合。
缺陷是已定义作为软件产品中不满足软件需求(如需求规范中所述)或最终用户期望(可能未指定但合理)的条件。
既然这种合理的期望是以一种无记录的方式被违反的,这难道不是一个错误吗?
发布于 2019-12-27 10:20:21
不,它没有坏
它只是从左到右结合,就像所有其他运算符一样。
在python中,**具有从右到左的结合性,所以这一点也没有中断。
他们只是有不同的规则
https://stackoverflow.com/questions/59499134
复制相似问题