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

C# 如何删除十进制字符串首尾零且无需单独处理负号

解决方案

通用正则实现(所有支持正则的语言都可使用)

直接通过单次正则匹配替换即可实现,不需要单独拆分、拼接负号:
核心正则规则:^-0*(\.\d*?)0*$,替换为-\1

正则逻辑说明:

  • 开头^-0*匹配负号和后面所有整数部分的前置零
  • 中间(\.\d*?)捕获小数点和有效小数部分
  • 末尾0*$匹配小数部分末尾的多余零
    替换时直接保留负号和捕获到的有效小数部分,自动跳过不需要的零。

Python 示例

import re

raw_str = "-00.20300"
result = re.sub(r"^-0*(\.\d*?)0*$", r"-\1", raw_str)
# 输出结果:-.203

JavaScript 示例

const rawStr = "-00.20300"
const result = rawStr.replace(/^-0*(\.\d*?)0*$/, "-$1")
// 输出结果:-.203

Python 无正则极简实现

如果不想用正则,可以用字符串分区方法,同样不需要单独处理负号:

raw_str = "-00.20300"
int_part, dot, dec_part = raw_str.partition(".")
result = f"{int_part[0]}.{dec_part.rstrip('0')}"
# 输出结果:-.203

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:15:05