经典ASP/Round()-将数字10000+显示为10K



就像Stack Overflow的信誉点一样,如果一个数字大于一万,他们会将其显示为10.3K,以节省空间。我是使用Round函数来实现这一点,还是最好使用某种字符串操作?

我会在必要时使用FormatNumber()来缩短数字,下面是一些示例代码来演示:

<%
' Number scale I used:
' http://www.statman.info/conversions/number_scales.html
Function shorten(s)
    Dim i, f
    i = CDbl(s)
    If (i > 1000000000000) Then
        i = i / 1000000000000
        f = "T"
    ElseIf (i > 1000000000) Then
        i = i / 1000000000
        f = "G"
    ElseIf (i > 1000000) Then
        i = i / 1000000
        f = "M"
    ElseIf (i > 1000) Then
        i = i / 1000
        f = "K"
    End If
    shorten = FormatNumber(i, 2) & f
End Function
Response.Write shorten("1346578977987") & "<br>"
Response.Write shorten("1645112877") & "<br>"
Response.Write shorten("1313333") & "<br>"
Response.Write shorten("108977") & "<br>"
%>

相关内容

最新更新