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

如何拆分未知十进制时间数值为多时间单位组合的可读格式

实现逻辑

核心思路是直接操作字符串避免浮点精度丢失,步骤如下:

  • 输入预处理:将输入中所有逗号替换为小数点,兼容欧洲地区用逗号做小数分隔符的格式
  • 拆分数值:按小数点把输入拆为整数段(对应秒的整数部分)和小数段
  • 补位处理:整数段不足3位时前面补零,小数段不足12位时后面补零,超过12位时可按需求截断或四舍五入(到皮秒精度只需要12位小数)
  • 分段映射:把补位后的小数段按每3位切割为4段,依次对应毫秒、微秒、纳秒、皮秒的数值
  • 拼接输出:将每段数值和对应单位组合即可
代码示例(Python)
def format_time(input_val: str) -> str:
    # 预处理:替换逗号为小数点
    processed = input_val.replace(',', '.')
    # 拆分整数和小数部分
    if '.' in processed:
        int_part, decimal_part = processed.split('.', 1)
    else:
        int_part = processed
        decimal_part = ''
    # 整数部分补前导零到3位,超过3位保留原值
    formatted_int = int_part.zfill(3)
    # 小数部分补后导零到12位,取前12位
    formatted_decimal = decimal_part.ljust(12, '0')[:12]
    # 按3位切割小数部分
    ms = formatted_decimal[0:3]
    us = formatted_decimal[3:6]
    ns = formatted_decimal[6:9]
    ps = formatted_decimal[9:12]
    # 拼接结果
    return f"{formatted_int} seconds {ms} miliseconds {us} microseconds {ns} nanoseconds {ps} picoseconds"
测试效果
  • 输入0.000000000123,输出:000 seconds 000 miliseconds 000 microseconds 000 nanoseconds 123 picoseconds
  • 输入123,456789123456,输出:123 seconds 456 miliseconds 789 microseconds 123 nanoseconds 456 picoseconds
  • 输入5,输出:005 seconds 000 miliseconds 000 microseconds 000 nanoseconds 000 picoseconds

如果需要调整秒的显示长度,或者增加更大的时间单位(分钟、小时等),只需要调整整数部分的分段逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:00:02