我正在读取管道分隔文件,并且需要检查列是否是有效货币(即它必须遵循xxxxx.xx格式,因此小数点后最多两位数,尽管之后不需要任何数字小数).我将如何在C#中执行此操作?
尝试将您的值转换为货币,如下所示:
double dummy;
bool valid = double.TryParse(value, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out dummy);
Run Code Online (Sandbox Code Playgroud)
valid如果TryParse可以将其解析为货币,那么将为真.到目前为止,这是比使用正则表达式更好的选择.
要获取值的小数(小数),只需将其转换为int并从原始值中减去它,如:
double fraction = value - (int)value;
Run Code Online (Sandbox Code Playgroud)
fraction 然后将包含小数,你可以随心所欲地做任何事情.