我在Access数据库中有一个整数,它在ASP.NET中显示。整数表示竞赛者在体育赛事(第一名,第二名,第三名等)中取得的位置,并且我希望以标准后缀(如'st','nd','rd')显示它。 ,而不仅仅是一个裸体数字。
一个重要的限制是,这是一个赋值,它指定不写入VB或C#代码(实际上它指示文件后面的代码被完全删除)。理想情况下我想使用标准格式字符串(如果可用),否则可能是自定义字符串(我没有使用格式字符串太多,而且这不足以将大量时间用于*,但我非常好奇关于是否有一个标准的字符串)。
(*这项任务将于今晚到期,而且我已经学会了我不能花时间处理那些没有得到分数的事情,即使他们让我感到非常烦恼。)
答案 0 :(得分:3)
不幸的是,没有标准的格式字符串来执行此操作。但写起来并不难:
public static string ToOrdinal(this int i, string format)
{
string suffix = "th";
switch (i%100)
{
case 11:
case 12:
case 13:
//deliberately empty
break;
default:
switch (i%10)
{
case 1:
suffix = "st";
break;
case 2:
suffix = "nd";
break;
case 3:
suffix = "rd";
break;
}
break;
}
return i.ToString(format) + suffix;
}
答案 1 :(得分:0)
你可以试试这个
public static string FormatOrdinalNumber(int number)
{
if (number == 0) return "0";
switch (number % 100)
{
case 11:
case 12:
case 13:
return number + "th";
}
switch (number % 10)
{
case 1: return number + "st";
case 2: return number + "nd";
case 3: return number + "rd";
}
return number + "th";
}