加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何检测字符串是否是c#中的货币

发布时间:2020-12-15 04:23:49 所属栏目:百科 来源:网络整理
导读:通常当我需要将货币字符串(如1200,55z?或$1,249)转换为十进制值时,我会这样做: if (currencyString.Contains("z?)) { decimal value = Decimal.Parse(dataToCheck.Trim(),NumberStyles.Number | NumberStyles.AllowCurrencySymbol);} 有没有办法检查字符串
通常当我需要将货币字符串(如1200,55z?或$1,249)转换为十进制值时,我会这样做:
if (currencyString.Contains("z?)) {
    decimal value = Decimal.Parse(dataToCheck.Trim(),NumberStyles.Number | NumberStyles.AllowCurrencySymbol);
}

有没有办法检查字符串是否是货币而不检查特定货币?

解决方法

如果你只是进行转换(你应该添加| NumberStyles.AllowThousands
| NumberStyles.AllowDecimalPoint也是如此)如果字符串包含当前UI的错误货币符号,则解析将失败 – 在这种情况下通过引发异常.它包含没有货币符号,解析仍然可以工作.

因此,您可以使用TryParse来实现此目的并测试失败.

如果您的输入可以是任何货币,则可以使用this version of TryParse将IFormatProvider作为参数,您可以使用该参数指定有关字符串的特定于区域性的解析信息.因此,如果解析失败了默认的UI文化,您可以循环再次尝试支持的每种文化.当你发现有效的那个时,你就得到了它的数量和货币类型(兹罗提,美元,欧元,卢布等)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读