字符串.format -逗号作为十进制分隔符

本文关键字:十进制 分隔符 format 字符串 | 更新日期: 2023-09-27 18:05:05

给定输入123.45,我试图通过String.Format获得输出123,45

由于我正在工作的系统,实际的格式字符串(例如{0:0.00})保存在配置文件中,并在以后的管道中进行转换。

编辑配置文件以添加新格式是"安全的",我可以很快完成。以后编辑实际的解析器是"有风险的",所以需要更重要的QA资源,我需要避免这种情况。

因此,一些警告:

  • 我只能访问string.Format(pattern, input)。没有过载。
  • 我无法发送本地化。我知道如果我发送string.Format(new System.Globalization.CultureInfo("de-DE"), "{0:0.00}", 123.45),我就得到了我需要的。但是我无法通过本地化。

那么这是可以做到的吗?
有没有什么格式我可以传递给string.Format,将123.45转换成123,45 ?

字符串.format -逗号作为十进制分隔符

如果您可以将输入乘以100,则以下内容应该可以工作:

double input = 123.45;
string pattern = "{0:###'',##}";
var result = String.Format(pattern, input*100);

只是为了好玩:)

        double value =123.45;
        Console.WriteLine(String.Format("{0:#0.00}'b'b'b,", value));

这当然只在有光标的情况下起作用,比如在控制台中,否则退格控制字符不起作用。

对不起,我想不出一个真正的方法来完成这件事。