字符串格式 - 简单的数千和数百

时间:2014-02-13 23:03:17

标签: c# string

我有以下内容:

value = 15123;
value.ToString("#,0K", System.Globalization.CultureInfo.CurrentUICulture);

输出结果为:15.199K

但我希望它输出以下内容:15.1K

我真心不明白如何得到它。我正在尝试使用stackoverflow完成与反馈评分相同的数字格式。

美国示例:

9823 = 9,823
10198 = 10,1K

西班牙示例:

9823 = 9.823
10198 = 10.1K

由于

2 个答案:

答案 0 :(得分:1)

尝试使用.

value.ToString("#,.0K", System.Globalization.CultureInfo.CurrentUICulture);

查看 .NetFiddle

输出:15.1K

更新:我用CurrentCulture创建了另一个 .NetFiddle (由@Lukazoid建议)。请从西班牙试试,如果有效,请告诉我们。

代码是

value.ToString("#,.0K", System.Globalization.CultureInfo.CurrentCulture);

答案 1 :(得分:0)

所以我做了一些代码,它按照我的预期工作。如果有人有任何想法如何改进它,很高兴改变它。

public static string GetAbbreviatedScore(int value)
{
    string result = "0";

    if (value > 0 && value < 10000)
    {
        result = value.ToString("#,#", System.Globalization.CultureInfo.CurrentUICulture);
    }
    else if (value >= 10000 && value < 100000)
    {
        if (value.ToString().EndsWith("000"))
        {
            result = value.ToString("#,#K", System.Globalization.CultureInfo.CurrentUICulture).Remove(1,4);
        }
        else
        {
        result = value.ToString("#,#K", System.Globalization.CultureInfo.CurrentUICulture).Remove(3,2);
        }
    }
    else if (value > 100000 && value < 1000000)
    {
        result = value.ToString("#,#K", System.Globalization.CultureInfo.CurrentUICulture).Remove(2,4);
    }

    return result;
}

非常感谢