Классический ASP / Round () - Показать числа 10 000+ как 10K - PullRequest
2 голосов
/ 27 февраля 2012

Как и в очках репутации Stack Overflow, если число больше десяти тысяч, они показывают его как 10,3 КБ, чтобы сэкономить место. Достигну ли я этого с помощью функции Round или лучше использовать какие-то манипуляции со строками?

1 Ответ

3 голосов
/ 27 февраля 2012

Я бы использовал 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>"
%>
...