string.format - 逗号作为小数点分隔符

时间:2016-09-01 14:13:02

标签: c# string-formatting

根据输入123.45,我试图通过123,45获取输出String.Format

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

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

结果,一些警告:

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

那可以吗? 我可以将任何格式传递给string.Format,这会将123.45转换为123,45吗?

2 个答案:

答案 0 :(得分:1)

如果您可以将输入乘以100,则以下情况应该起作用:

double input = 123.45;
string pattern = "{0:###\\,##}";

var result = String.Format(pattern, input*100);

答案 1 :(得分:1)

只是为了它的乐趣:)

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

这当然只有在有光标时才有效,就像在控制台中一样,否则退格控制字符无效。

很抱歉,但我无法想出实现这一目标的真正方法。