我有以下内容:
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
由于
答案 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;
}
非常感谢