You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中负数除法结果疑问:为何-25/24等于-2而非-1?

关于Ruby 2.6.1整数负数除法结果的解释

嘿,这个问题的核心其实是Ruby里整数除法的取整规则——Ruby的整数除法是向负无穷方向取整,而不是我们直觉里的“向零取整”,我给你逐个拆解你的例子:

先明确核心规则

Ruby中,两个整数做除法时,会把计算结果向负无穷方向取整(也就是取比当前计算结果更小的那个整数),而不是简单截断小数部分向零靠拢。

逐个分析你的示例

  1. 25/24 => 1:25除以24的结果是1.041...,向负无穷取整的话,最接近的更小整数就是1,这个和我们的直觉一致。
  2. -25/24 => -2:-25除以24的结果是-1.041...,向负无穷取整的话,比-1.041...更小的整数是-2(毕竟负无穷方向的数值是越来越小的,-2 < -1),所以结果是-2而非你预期的-1。
  3. 24/25 => 0:24除以25是0.96,向负无穷取整的话,更小的整数就是0,这个结果也很好理解。
  4. -24/25 => -1:-24除以25是-0.96,向负无穷取整的话,比-0.96更小的整数是-1,所以最终结果是-1。

额外小技巧:如果想要向零取整的结果

如果你需要的是截断小数部分向零取整的效果,可以先把数值转成浮点数计算,再转回整数:

(-25.0 / 24).to_i  # => -1
(-24.0 / 25).to_i  # => 0

内容的提问来源于stack exchange,提问作者belgoros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:41:38