Regex将字符串编号转换为货币
本文关键字:货币 转换 编号 字符串 Regex | 更新日期: 2023-09-27 18:25:41
我有一个字符串文件,其中包含美元金额。我想做的是处理字符串并用实际货币隐藏。
示例:
可能的传入字符串;
80
1000.00
1000.0
-100
所需输出为:;
100.00
1,000.00
-100.00
如何使用regex格式化字符串并将其转换为我想要的输出?
您所说的实际货币是什么意思还不清楚,但我假设您只想要一个看起来像您发布的样本的字符串。请记住,decimal
类型(最适合表示货币的类型)没有任何实际的格式信息。
您必须使用decimal.Parse
解析string
,然后将值转换回为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)
Microsoft.Net Framework中没有真正的货币转换器,因此您必须在所提供的约束条件下工作,即decimal
。最接近decimal
被默认为货币的是:
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();
表示小数的转换。