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

技术问询:如何将数值四舍五入至最接近的十分位?

实现自定义规则的十分位四舍五入

要达成你给出的示例效果(0.56 => 0.5;2.78 => 2.8),核心逻辑是:查看数值的百分位数字,若百分位≥8则向十分位进1,否则直接舍去百分位及之后的小数部分。

以下是几种主流编程语言的实现方式:

Python 实现

def custom_round(num):
    integer_part = int(num)
    decimal_part = num - integer_part
    # 提取百分位数字
    hundredth_digit = int(decimal_part * 100) % 10
    # 提取十分位数字
    tenth_digit = int(decimal_part * 10) % 10
    
    if hundredth_digit >= 8:
        return integer_part + (tenth_digit + 1) / 10
    else:
        return integer_part + tenth_digit / 10

# 测试示例
print(custom_round(0.56))  # 输出 0.5
print(custom_round(2.78))  # 输出 2.8

JavaScript 实现

function customRound(num) {
    const integerPart = Math.floor(num);
    const decimalPart = num - integerPart;
    const hundredthDigit = Math.floor(decimalPart * 100) % 10;
    const tenthDigit = Math.floor(decimalPart * 10) % 10;
    
    if (hundredthDigit >= 8) {
        return integerPart + (tenthDigit + 1) / 10;
    } else {
        return integerPart + tenthDigit / 10;
    }
}

console.log(customRound(0.56)); // 输出 0.5
console.log(customRound(2.78)); // 输出 2.8

补充说明

  • 若你的需求是常规四舍五入(百分位≥5则进1),上述逻辑不适用,可直接调用语言内置函数:比如Python的round(0.56, 1)返回0.6,JavaScript的0.56.toFixed(1)返回"0.6"。
  • 上述代码默认针对正数场景,处理负数时需额外调整逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:18:18