关闭。这个问题需要细节或清晰。它目前不接受答案。**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
两年前关门了。改进这个问题抱歉,伙计们,我想让php mod显示小数在mysql中 select mod(15.6,1) 结果 0.6 但在php中 15.6 % 1 结果 0 ?我的目的是限制计算只精确整数,不允许小数
select mod(15.6,1)
0.6
15.6 % 1
0
kupeojn61#
在php中 % 模运算符作用于整数。操作数15.6和1在处理之前被转换为int(15和1)。因此,15%1,正如您所期望的,得到0。因此,“不允许小数的精确整数”符合php中的行为。在mysql中,如文档所述:mod()还处理包含小数部分的值,并在除法后返回精确的余数因此,在mysql中使用操作数之前,应该先截断操作数(operand,0)以获得整数行为。这与php转换为int的行为是一致的——数字被截断,而不是被覆盖(这与负数有很大区别)。
%
1条答案
按热度按时间kupeojn61#
在php中
%
模运算符作用于整数。操作数15.6和1在处理之前被转换为int(15和1)。因此,15%1,正如您所期望的,得到0。因此,“不允许小数的精确整数”符合php中的行为。在mysql中,如文档所述:
mod()还处理包含小数部分的值,并在除法后返回精确的余数
因此,在mysql中使用操作数之前,应该先截断操作数(operand,0)以获得整数行为。这与php转换为int的行为是一致的——数字被截断,而不是被覆盖(这与负数有很大区别)。