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

如何基于数组中数字的最后两位小数将其分类到不同数组中

按小数后缀分类double数组实现方案

核心注意点

  • 不要直接对double类型做小数部分截取,浮点数精度误差会导致判断错误(比如实际应为0.3的数值被存储为0.299999999999999的情况)。
  • 推荐统一将数值乘以100后四舍五入取整,再对100取模,用整数结果做分类判断,准确率更高。

实现逻辑

  • 初始化三个空数组,分别存储.25、.5、.75后缀的数值
  • 遍历输入的double数组,对每个元素做如下处理:
    1. 计算round(数值 * 100) % 100得到整数余数
    2. 余数为25则归入.25数组,余数为50归入.5数组,余数为75归入.75数组
    3. 可根据需求扩展其他后缀的分类规则

可运行代码示例(Python)

import math

def classify_by_decimal_suffix(input_list):
    # 初始化分类数组
    arr_25 = []
    arr_50 = []
    arr_75 = []
    for num in input_list:
        # 转整数判断避免精度问题
        decimal_suffix = round(num * 100) % 100
        if decimal_suffix == 25:
            arr_25.append(num)
        elif decimal_suffix == 50:
            arr_50.append(num)
        elif decimal_suffix == 75:
            arr_75.append(num)
    return arr_25, arr_50, arr_75

# 测试用例
test_list = [1.25, 2.25, 3.5, 10.5, 7.75, 4.75]
arr_25, arr_50, arr_75 = classify_by_decimal_suffix(test_list)
print(".25后缀数组:", arr_25)
print(".5后缀数组:", arr_50)
print(".75后缀数组:", arr_75)

运行结果

.25后缀数组: [1.25, 2.25]
.5后缀数组: [3.5, 10.5]
.75后缀数组: [7.75, 4.75]

其他语言适配说明

如果用Java/C++等其他强类型语言实现,逻辑完全一致:

  • Java可以用Math.round(num * 100) % 100计算后缀标识
  • C++可以用std::round(num * 100) % 100实现相同逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:48:04