【发布时间】:2019-05-23 22:50:37
【问题描述】:
我有格式字符串 ######.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。有没有办法做到这一点?
【问题讨论】:
-
为什么不能操作数字或结果字符串?您是否可以使用
string.Format的不同重载? -
I'm not able to manipulate the number, nor the resulting string, only the format string.你能告诉我们这个限制吗? 为什么你只有这个工具? -
@mjwills P2 保留小数点以及百分比。我也在考虑
{0:#%},但我猜剩下的%标志是一个交易破坏者。 -
为什么不简单地乘以 100 并取
int部分而不是使用字符串格式? -
@yiabiten 阅读问题的第二段
标签: c# string format string-formatting