对于使用 String.Format 创建的货币字符串,decimal.parse 失败?

发布于 2024-10-30 10:53:20 字数 355 浏览 1 评论 0原文

我有一个通过以下方式显示的字段:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼中杀气 2024-11-06 10:53:21

这些是在不同的机器上吗?
机器的设置不同。
默认格式在控制面板区域设置中设置。

Are these on different machines?
The machines be be setup differently.
The default formats are set in the control panel regional settings.

北城挽邺 2024-11-06 10:53:20
var amount = decimal.Parse("$28.28", NumberStyles.Currency);

对我来说效果很好。确保您的输入字符串是您认为的内容。

var amount = decimal.Parse("$28.28", NumberStyles.Currency);

works fine for me. Make sure your input string is what you think it is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文