@favourstreet 我觉得设计者的意思是,为了避免类型提升可能存在的问题,于是甩掉了 general 的类型提升,然后为了一点小方便,在 constant expression 这个 special case 里面允许这么做。可能是以为这样不仅 大道至简,还能避免类型提升可能的问题吧(至于类型提升这个东西自身到底应不应该存在?这个问题我推测他们并没有想过)。
结果就出了楼主这个问题。

> 而且按照常量表达式里的那句话,2.5/5 应该等于 0,实际上等于 0.5,这算什么?
我不知道你是怎么看出来的,他还举了例子,integer constant / complex constant = complex constant 。