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

求编写将数字四舍五入至最接近末位为90的数的函数方案

实现取整至末位为90的最近数

核心逻辑

你需要的是将数字取整到最后两位为90的最近数(如11190、11290这类),而非90的倍数。正确推导步骤如下:

  1. 给原数加10,把目标数的末位90转换为00(比如11190+10=11200,末位为00)
  2. 对转换后的数四舍五入到最近的整百数
  3. 再减去10,还原回末位为90的数

代码实现(以PHP为例)

function roundToLastTwo90($num) {
    $adjusted = $num + 10;
    $nearestHundred = round($adjusted / 100) * 100;
    return $nearestHundred - 10;
}

验证示例

  • 输入11210:
    1. 11210 + 10 = 11220
    2. 11220四舍五入到百位是11200
    3. 11200 - 10 = 11190(符合预期)
  • 输入11250:
    1. 11250 +10=11260
    2. 四舍五入到百位是11300
    3. 11300-10=11290(距离11250更近,正确)

为什么之前的解法不对

ChatGPT给出的ceil($num/90)*90是取大于等于原数的最近90倍数,但这和你要的「末位为90的数」完全不是一个概念——90的倍数最后两位可能是00、50、80等(比如90*125=11250,末位是50),自然不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:47:31