对于使用 String.Format 创建的货币字符串,decimal.parse 失败?
我有一个通过以下方式显示的字段:
String.Format({0:c},amount)
这会生成字符串“$28.28”
但是,当我尝试转换回十进制金额时,我收到格式不正确的异常:
amount = Decimal.Parse(amount.Text, NumberStyles.Currency)
我还使用 NumberStyles.AllowCurrencySymbol 进行了尝试,得到了相同的结果。我验证了 amount.Text 中的值是“$28.28”。
我错过了什么吗?这两个操作不应该使用相同的货币符号和格式吗?
I have a field that I display via:
String.Format({0:c},amount)
This produces the string "$28.28"
However, when I try to convert back to a decimal amount, I get an incorrect format exception:
amount = Decimal.Parse(amount.Text, NumberStyles.Currency)
I also tried it with NumberStyles.AllowCurrencySymbol with the same results. I verified that the value in amount.Text is "$28.28".
Am I missing something? Shouldn't these two operations use the same currency symbol and formats?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这些是在不同的机器上吗?
机器的设置不同。
默认格式在控制面板区域设置中设置。
Are these on different machines?
The machines be be setup differently.
The default formats are set in the control panel regional settings.
对我来说效果很好。确保您的输入字符串是您认为的内容。
works fine for me. Make sure your input string is what you think it is.