【问题标题】:Comma and (decimal) point: Do they need different handling?逗号和(小数)点:它们需要不同的处理吗?
【发布时间】:2012-01-16 19:16:48
【问题描述】:

只是我想知道的事情。 在欧洲,逗号我们主要用于小数(如 20,001),但在欧洲以外,点主要用于(如 20.001) c#如何处理这个? 如果一个应用程序将被欧洲和非欧洲人使用,你在编程时是否需要担心以上问题?

只是好奇。

【问题讨论】:

标签: c# point comma


【解决方案1】:

编程语言而言,小数点分隔符始终为.,用于分隔函数参数的标点符号始终为,。根据程序员的口语更改它会太混乱。

对于用户界面CultureInfo class 中有格式化函数,可以生成使用您选择的小数点分隔符和千位分隔符的浮点数表示。 (或者,对于数字的数字分组方式不同于三元组的文化,格式化函数也可以处理。)

【讨论】:

  • 啊哈是的,这正是我的意思,当用户在(例如)代码中用于输入值的文本框中使用点或逗号时会发生什么。但是现在看到,程序员可以设置一些分隔符,以便代码可以理解,(因此无论 . 或 , 是什么都可以得到相同的输入)thanx 来解释
  • 有趣的是,整个编程语言行业都是以美国为中心的——没有一种语言(据我所知)可以让欧洲本土程序员编写三个半3,5 在他的代码中。
【解决方案2】:

CultureInfo 处理这种情况。

看看this

// format float to string
float num = 1.5f;
string str = num.ToString(CultureInfo.InvariantCulture.NumberFormat);        // "1.5"
string str = num.ToString(CultureInfo.GetCultureInfo("de-DE").NumberFormat); // "1,5"

【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:

      您应该使用CultureInfo Class 来处理它。只需使用正确的格式化程序读写即可。

      【讨论】:

        【解决方案5】:

        这取决于你具体做什么...... .NET 通常知道机器/操作系统的当前设置并使用这些设置......

        您应该查看this 并查看其中是否与您的情况相关...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-02
          • 2019-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-06
          相关资源
          最近更新 更多