如何使用字符串格式省略句号但保留数字

时间:2019-05-23 22:50:37

标签: c# string format string-formatting

我有格式字符串######.00,用于在C#中格式化小数。我需要对其进行更改,以便省略该期间,但保持该期间之后的数字。我可以仅通过更改格式来完成此操作吗?我已经搜索过,但无法在线找到解决方案。

我发现this answer是一个非常相似的问题,但是它涉及在格式化小数之前将其乘以100。我无法操纵输入的数字,也无法操纵生成的字符串,因为我无法访问它们。这是因为我们正在使用第三方库中的函数,该函数从其他位置获取数字并将其格式化为UI。我只能为其提供格式字符串。 (如果处理数字或结果字符串是获得可能格式的唯一方法,那么它将需要大量重构,因此我想先看看是否有一个更简单的解决方案。因此有一些限制。 )

仅以我要查找的输出为例,请考虑以下代码:

var myFormat = "{0:######.00}";
Console.WriteLine(string.Format(myFormat, 1234.1234));
Console.WriteLine(string.Format(myFormat, 5));

上面的代码当前输出1234.125.00,但我希望仅通过更改123412来输出500myFormat。有办法吗?

1 个答案:

答案 0 :(得分:1)

如果只能更改格式字符串,则可能无法删除点。
但是,您可以实现自己的Formatter,如MSDN的示例。

string.Format(new CustomerFormatter(), "{0}", 1234.1234)