【问题标题】:C# ToString("C") converting the decimal to currency value pound instead of dollarC# ToString("C") 将小数转换为货币值英镑而不是美元
【发布时间】:2017-08-09 20:44:24
【问题描述】:

我正在将一个双精度值转换为货币字符串格式,它得到转换后的带有英镑符号货币的字符串。是否依赖文化?

【问题讨论】:

  • 系统区域设置
  • 我们如何检查系统本地设置
  • 你的问题到底是什么
  • 这在 2 个月前运行良好。对框架的任何升级都会影响吗?
  • 他的意思是系统区域设置/区域设置

标签: c# currency tostring decimalformat


【解决方案1】:

如果您总是想使用特定的语言环境,如果您的服务器目标托管在不同的时区等情况下,这可能是可取的... ToString() 可以提供 CultureInfo 参数。

How to convert string to double with proper cultureinfo

如果您想根据用户的语言环境对其进行定制,您可以检查请求值:

Get CultureInfo from current visitor and setting resources based on that?

【讨论】:

    【解决方案2】:

    这可能不是最好/最有效的方法,但是将要显示磅的小数转换为字符串,然后用磅符号替换美元符号

    decimal monies = 2.50m;
    string moniesString = monies.ToString();
    string moniesFormatted = string.Format("{0}£", moniesString);
    

    同样,这很可能不是最好或最有效的方法,但它可以避免更改您的计算机设置。

    希望这会有所帮助!如果不让我知道,我会删除答案(我必须使用答案,因为我不能在 50 代表以下发表评论,否则我会在回答之前使用评论来获得更清晰的答案)干杯!

    【讨论】:

      【解决方案3】:
      Control Panel > Region > Formats > Advanced
      

      【讨论】:

      • 这将解决问题.. 预计它会导致 OP 机器上的 every 价格使用井号,并且在从另一个访问应用程序时不起作用机器。您是否建议 OP 必须为他们打算在其上运行应用程序的 每个 虚拟机执行此操作?
      猜你喜欢
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2014-05-08
      • 1970-01-01
      相关资源
      最近更新 更多