1

我在 Access 数据库中有一个整数,它正在 ASP.NET 中显示。整数代表运动员在体育赛事中获得的位置(第 1、第 2、第 3 等),我想适当地用标准后缀显示它,如 'st'、'nd'、'rd' ,而不仅仅是一个裸数字。

一个重要的限制是,这是一个指定不编写 VB 或 C# 代码的分配(实际上它指示文件后面的代码被完全删除)。理想情况下,如果可用,我想使用标准格式字符串,否则可能是自定义字符串(我没有太多使用格式字符串,这不是足够高的优先级来花费大量时间*,但我很好奇关于是否有一个标准字符串)。

(*今晚的作业要交了,我学到了一个艰难的方法,即我不能把时间花在没有得到分数的事情上,即使它们让我很恼火。)

4

2 回答 2

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;
}
于 2010-05-28T03:23:38.063 回答
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";
}
于 2013-12-03T07:26:13.677 回答