【发布时间】:2012-12-31 15:47:16
【问题描述】:
我正在创建一个应该
1. 接受一个字符串
2. 将该字符串格式化为货币(无小数或美分)并返回它
String.Format 擅长格式化,但它的格式化只适用于打印或输出值。当我单步执行代码时,我可以清楚地看到实际保存到字符串未格式化。但我需要将其格式化。这就是需要您帮助的地方。
在上面的步骤 1 中,输入的字符串将属于 3 种可能格式中的一种。 (下面,我使用 " 来指定字符串的开头和结尾。" 实际上并不是字符串的一部分。)
1.“
2.“5000-10000”
3. ">10000"
对于这3个例子,方法应该输出
1.“
2.“$5,000 - $10,000”
3. ">$10,000"
基本上,该方法应该在需要的地方添加 $ 和 (String.Format 做得很好)。其余的格式,如添加 或 - 很容易。我可以制作一种手动执行此操作的方法,但必须有更简单的方法!
【问题讨论】:
-
如果你已经有一个字符串变量,我们称之为
s,说string.Format( /* something with s in it */ )不会改变s本身。您可能想要重新分配,如s = string.Format( /* something with s in it */ ),其中右侧使用“旧”s对象,然后将Format的结果“保存”到s并成为新的@ 987654330@。但请注意,String.Format不能将 string 格式化为货币。它可以将数字(如decimal或double)格式化为货币,但是一旦你有了字符串,像{0:C}这样的格式将无法帮助更改字符串输出。 -
Jeppe Stig Nielson 你明白了!我已经有一个字符串值,所以 String.Format 无法帮助我,这就解释了为什么它什么都不做。名称 String.Format 听起来确实有点像它应该能够格式化字符串,但正如您所指出的,事实并非如此。谢谢你。我如何将您的答案标记为正确,因为它在评论中?
-
我已使用涉及
Regex的解决方案编辑了我的帖子。它可能不如string.Format轻,但它适用于您的样品。 -
@JLee 我将我的评论复制到一个答案中,所以现在你可以接受它,如果你愿意。
标签: c# string formatting currency string.format