我有格式字符串######.00
,用于在C#中格式化小数。我需要对其进行更改,以便省略该期间,但保持该期间之后的数字。我可以仅通过更改格式来完成此操作吗?我已经搜索过,但无法在线找到解决方案。
我发现this answer是一个非常相似的问题,但是它涉及在格式化小数之前将其乘以100。我无法操纵输入的数字,也无法操纵生成的字符串,因为我无法访问它们。这是因为我们正在使用第三方库中的函数,该函数从其他位置获取数字并将其格式化为UI。我只能为其提供格式字符串。 (如果处理数字或结果字符串是获得可能格式的唯一方法,那么它将需要大量重构,因此我想先看看是否有一个更简单的解决方案。因此有一些限制。 )
仅以我要查找的输出为例,请考虑以下代码:
var myFormat = "{0:######.00}";
Console.WriteLine(string.Format(myFormat, 1234.1234));
Console.WriteLine(string.Format(myFormat, 5));
上面的代码当前输出1234.12
和5.00
,但我希望仅通过更改123412
来输出500
和myFormat
。有办法吗?
答案 0 :(得分:1)
如果只能更改格式字符串,则可能无法删除点。
但是,您可以实现自己的Formatter,如MSDN的示例。
string.Format(new CustomerFormatter(), "{0}", 1234.1234)