【问题标题】:convert float to string with . instead of , [duplicate]使用 . 将浮点数转换为字符串。而不是 , [重复]
【发布时间】:2017-04-12 15:46:38
【问题描述】:

“如何将浮点数转换为只有一位小数的字符串”

这个问题已经被问过很多次了,通常的答案是MyFloat.ToString("0.0") 或类似的东西。但是,我面临的问题是

float f = 1;
string s = f.ToString("0.0");
MessageBox.Show(s);

输出1,0,但我需要的是1.0。我当然可以在之后手动用点替换逗号,但我很确定这不是正确的方法。 我无法在互联网上找到解决方案,因为到处都说这已经输出1.0 怎么会?

【问题讨论】:

标签: c#


【解决方案1】:

您可以将InvariantCultureToString 一起使用:

string s = f.ToString("0.0", CultureInfo.InvariantCulture);

小数点分隔符取决于文化,但 InvariantCulture 使用 .,这是您想要的。

【讨论】:

    【解决方案2】:

    以 InvariantCulture 为例

    string s = f.ToString("0.0", CultureInfo.InvariantCulture);
    

    【讨论】:

      【解决方案3】:

      通用解决方案是:在当前文化中更改NumberDecimalSeparator

      System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
      customCulture.NumberFormat.NumberDecimalSeparator = ".";
      System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
      float value1 = 3.55f;
      String message = String.Format("Value is {0}", value1); 
      Console.Write(message); //--> "Value is 3.55"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-06
        • 2011-11-25
        • 1970-01-01
        • 2017-05-09
        • 2016-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多