工具用的顺手吗?
你的反馈能帮助我们做得更好
计算两数相除的余数,支持正整数与负数的取模运算。
商向 0 截断,余数符号与被除数相同。
公式
a mod n = a - q × n
其中 q 为商,n 为除数;不同取模方式取整规则不同,结果可能不同。
| 取模方式 | 余数 |
|---|---|
| 截断式(C / JS / Java %) | 2 |
| 向下取整式(Python %) | 2 |
| 欧几里得式(余数非负) | 2 |
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
被除数 a 除以非零除数 b,可以写成 a = q × b + r,其中 q 是商,r 是余数。输入正数时,常见约定通常得到相同结果;出现负数时,关键差别在于商如何取整,因此“取模”并非所有语言或场景都只有一种口径。
截断式:q = trunc(a ÷ b),商向 0 取整,r = a − q × b;余数的符号随被除数。
向下取整式:q = floor(a ÷ b),商向负无穷取整,余数的符号随除数。
欧几里得式:余数保持非负,且 0 ≤ r < |b|。
例如 a = −17、b = 5 时,截断式得到 −2,向下取整式和欧几里得式得到 3。工具默认选中截断式,同时列出三种模式的余数,便于对照目标数学定义或代码环境。JavaScript 的百分号运算使用截断余数口径;负数参与运算时,不能把它和所有语言里的“mod”直接视为同一规则。MDN 对余数和模运算的说明也展示了这种差异。
当 a 和 b 都为正数时,三种模式会给出一致的余数;差异主要出现在商为负数或除数为负数时。用 −17 和 5 做例子,比只用正整数更容易看出截断与向下取整两种定义的区别。
指南
按步骤完成操作,并通过示例核对输入与结果。
两个输入框都可填写整数或小数,也可输入负数。除数不能为 0。
在“取模方式”中选择截断式、向下取整式或欧几里得式。若只处理正数,三种结果相同;负数输入时,应按你正在学习的数学定义或目标程序语言来选。
结果区会显示当前模式的余数和商,并展示恒等式 a = q × b + r 以及三种余数的对照表。修改任一数字或模式,结果会随输入更新。
输入使用普通十进制写法;提交后可直接复制主结果区的余数。页面还会显示商和等式校验,若校验式不成立,应先检查被除数、除数和当前所选模式。
场景
查看这项工具在不同工作与生活流程中的用法。
当题目讨论带余除法时,先选题目采用的取整约定,再检查“被除数 = 商 × 除数 + 余数”,避免只看余数数字而忽略商的定义。
调试负数取余代码时,把目标语言采用的规则与三列结果逐一比较。像 −17 ÷ 5 这样的符号相反输入,能快速暴露约定不一致的问题。
处理循环队列、周期位置或按固定长度分组时,可根据目标算法是否要求非负余数选择模式,再用负数边界值确认索引方向。
问答
集中解答高频疑问与容易混淆的问题。
因为截断式把商向 0 取整,得到商 −3、余数 −2;向下取整式把商向负无穷取整,得到商 −4、余数 3。欧几里得式要求余数非负,因此此例也得 3。
可以。整数和小数输入都能计算,例如 7.5 除以 2 在三种模式下的余数均为 1.5。小数结果受有限数值精度和页面显示位数影响,较长的小数尾数可能会被格式化。
除以 0 的余数没有定义,页面会提示除数不能为 0,不会给出可用的商和余数。
须知
使用前了解适用范围、结果限制与必要提醒。
不同编程语言对负数取余或取模的规则可能不同,使用结果前应确认目标环境的约定;如果计算只接受非负余数,应选欧几里得式并核对结果。整数输入适合精确验证整数余数;小数运算经过有限精度计算并按页面位数显示,不应用显示出来的舍入结果代替高精度财务、科学或工程计算。除数必须非零。
整数输入走整数余数计算;小数输入使用有限精度数值运算。常见小数结果最多显示 10 位小数,极小或极大的值可能改用科学计数形式。需要更高精度时,应采用与任务精度要求相符的专用数值方法。
推荐
查找相关工具、专题与可用的 API 能力。