【问题标题】:Converting swedish string to currency not converting properly将瑞典语字符串转换为货币未正确转换
【发布时间】:2011-06-28 14:14:49
【问题描述】:

我正在尝试使用瑞典文化将“-10,00”从字符串转换为货币。这是我的代码:

ByVal ci As System.Globalization.CultureInfo("sv-SE")
Convert.ToDecimal("-10,00").ToString("C", ci)

上面代码的输出是:-1.000,00 kr,这是错误的。它应该是-10,00 kr。我的方法有什么问题吗?

解决方案:

解决方案是将cultureInfo 作为第二个参数传递给ToDecimal 函数。

ByVal ci As System.Globalization.CultureInfo("sv-SE")
Convert.ToDecimal("-10,00", ci).ToString("C", ci)

【问题讨论】:

  • 你不应该打电话给Convert.ToDecimal
  • 这些值是动态的并且来自 ajax 调用。我正在使用 jquery.global (github.com/jquery/jquery-global) 将输入的值转换为基于国家/地区的格式。

标签: vb.net cultureinfo


【解决方案1】:

C 格式说明符包含两位小数。
要摆脱它们,请使用C0

【讨论】:

  • 我试过了,它返回 -1.000 kr。不应该是 -10.00kr 吗?
  • Convert.ToDecimal 没有返回您认为的内容。使用十进制文字。
  • 我刚刚尝试了 Convert.ToDecimal("-10,00") 并返回 -1000D。
  • 那我不知道你想要什么。
  • "-10,00" 应该返回 -10.00kr 而不是 -1.000,00 kr。我实际上可以将cultureinfo 传递给Convert.ToDecimal(.., ci),它会正确转换值并返回-10.00 kr。但是,当我现在尝试转换:12.345,00 时,我得到一个“输入字符串无效”异常。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
相关资源
最近更新 更多