65.9K
CodeProject is changing. Read more.
Home

Number Conversion (1 to "1st", etc)

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.80/5 (5 votes)

Mar 20, 2003

viewsIcon

81334

An article on Number Conversion from the basic number to the number with a following suffix. (ie, 1 to "1st")

Introduction

This little function is really simple, but comes in very handy. I have come across this issue many times and usually just dodge it when I can, but finally I had a project that insisted that I format some numbers this way, so alas, here I am.

Using The Code

This is just a basic function call. Send it any number greater than 0 and it will return the number formatted with a "st", "nd", "rd" or "th" after it. Sending it "" will cause an error message to be displayed.

dim iTestNumber 'number to be passed to function

dim sNewNumber  'string returned from function

dim x           'loop incriment


' this function will format a number with it's given suffix. (1st, 2nd, 3rd)

Function BuildNumber(iNum)
dim sNewNum
sNewNum = iNum if right(iNum, 2) = "11" or right(iNum, 2) = "12" or _ right(iNum, 2) = "13" then sNewNum = sNewNum & "th" else iNum = right(iNum, 1) select case iNum case "1" sNewNum = sNewNum & "st" case "2" sNewNum = sNewNum & "nd" case "3" sNewNum = sNewNum & "rd" case "" sNewNum = "error" case else sNewNum = sNewNum & "th" end select end if if sNewNum = "error" then response.write "There was an error with the date passed to the "
response.write "function. The date must be an integer greater "
response.write "than 0 and not equal to blank. Please use the "
response.write "back button to fix the problem or contact customer "
response.write "support. Thank you." response.End end if buildnumber = sNewNum end function for x = 1 to 100 iTestNumber = x sNewNumber = BuildNumber(iTestNumber) response.write("This is the value sent to the function: "
response.write iTestNumber & "<br>") response.write("This is the value returned from the function: "
response.write "sNewNumber & "<br><HR>") next response.end

Points of Interest

Watch out for the little catches such as "11", "12" and "13" all end in "th" rather than "st", "nd" and "rd". I think those are the only exceptions though. It should work for negative numbers, but I'm not sure why you would want to do that. But that's up to you.