我有一个问题,我需要添加两个数字字符串“$ 1,234.56”和“$ 9,876.54”并获得一个字符串“$ 11,111.10”
我可以将字符串转换为数字,执行添加,但我不知道在ToString()结果时保留格式的好方法。我可以添加几行if语句:输入是否有美元符号,小数点,百分号,并相应地构造格式字符串,但这很笨重,如果我们需要支持多种数字格式,则会失败。
有谁知道如何添加数字字符串并保留格式?
编辑:回答问题。在给定时间添加的所有字符串的格式是相同的,即:我不需要担心添加$和£(实际上目前不支持£),但是,目前支持的几种可能的格式和将来可能会添加更多内容:
$ 1,234.00; $的1,234; 1234; 1,234; 1,234.00; 1234%; 1234%; 1,234.00%
答案 0 :(得分:0)
我建议使用第一个数字字符串作为模板,并从中创建一个数字格式:
var posshalves = firstNumericString.Split('.');
var fmthalves = new string[2] { posshalves[0], (posshalves.Length < 2 ? "" : "."+posshalves[1])};
var intfmt = Regex.Replace(fmthalves[0], @"[0-9]", "#");
intfmt = Regex.Replace(intfmt, @"#+", "#");
var decfmt = Regex.Replace(fmthalves[1], "[0-9]", "0");
var format = $"{intfmt}{decfmt}";