我有一个持有美元金额的字符串。我想要做的是处理字符串并以实际货币进行隐蔽。
示例:
可能的传入字符串;
80
1000.00
1000.0
-100
所需的输出是;
100.00
1,000.00
-100.00
如何使用正则表达式格式化字符串并将其转换为我想要的输出?
答案 0 :(得分:2)
实际货币的含义并不是很清楚,但我假设您只想要一个类似于您发布的样本的字符串。请注意,decimal
类型(最适合代表货币的类型)不具有任何实际的格式信息。
您必须使用string
解析decimal.Parse
,然后将值返回转换为string
,以使其达到所需的格式
例如:
public string Format(string input)
{
decimal value = decimal.Parse(input);
return value.ToString("#,#.00");
}
// usage: Format("1000.0")
示例: https://dotnetfiddle.net/P7psPC
但是,如果您正在处理货币,则可以使用C
格式说明符:
value.ToString("C");
这将为您的示例输入输出以下内容:
$80.00
$1,000.00
$1,000.00
($100.00)
答案 1 :(得分:0)
Microsoft .Net Framework中没有真正的货币转换器,因此您必须在提供的约束内工作,即decimal
。您最接近decimal
默认为 money 的将是:
decimal amount = 0.00m
最后m
声明此小数代表金钱。添加时会提供基本的四舍五入,好像是钱。
然而,最简单的方法是Andrew Whitaker如何进行转换。我唯一要补充的是,当你利用:
value.ToString("#,##0.00"); // Output: 0.96
value.ToString("#,#.00"); // Output .96
value.ToString("0.##"); // Output 0.6
澄清使用ToString();
进行小数转换。