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

C#中移除逗号的代码失效,输出仍含逗号求排查解决

问题分析与修复

你写的代码想要实现:接收数字字符串,移除其中的逗号和小数点,然后在字符串前补零直到长度达到13位。但输入"123,560.789"时,输出却是"000123,560789",逗号没被移除,不符合预期。

错误原因

问题出在两个独立的if判断逻辑上:

  • 第一个if判断字符串包含逗号时,会把原字符串prm去掉逗号后赋值给ret
  • 但第二个if判断字符串包含小数点时,又直接拿**原字符串prm**去掉小数点后赋值给ret,这就覆盖了之前已经去掉逗号的结果,导致逗号又保留了下来

修复后的代码

可以直接对字符串链式调用Replace方法,依次移除逗号和小数点,每一步操作都基于上一步处理后的结果:

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        string xcom = "123,560.789";
        Console.WriteLine(FormatNumber(xcom));
    }
    static string FormatNumber(string text){
        // 先移除逗号,再移除小数点
        string ret = text.Replace(",", "").Replace(".", "");
        // 前补零直到长度为13位
        while(ret.Length < 13){
            ret = "0" + ret;
        }
        return ret;
    }
}

验证结果

输入"123,560.789"时,处理后会先得到"123560789",然后前补4个零,最终输出"0000123560789",符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:50:36