Asp classic 经典ASP/Round()-显示数字10000+;as 10K

Asp classic 经典ASP/Round()-显示数字10000+;as 10K,asp-classic,vbscript,Asp Classic,Vbscript,就像堆栈溢出的信誉点一样,如果一个数字大于一万,他们会显示为10.3K,以节省空间。我是使用Round函数实现这一点,还是使用某种字符串操作更好?必要时,我会使用它来缩短数字,下面是一些示例代码来演示: <% ' Number scale I used: ' http://www.statman.info/conversions/number_scales.html Function shorten(s) Dim i, f i = CDbl(s) If (i &

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

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

<%
' 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>"
%>
10000000000)然后
i=i/10000000000
f=“T”
ElseIf(i>100000000)则
i=i/100000000
f=“G”
如果(i>1000000)那么
i=i/1000000
f=“M”
ElseIf(i>1000)那么
i=i/1000
f=“K”
如果结束
缩短=格式编号(i,2)和f
端函数
回复。写缩短(“1346578977987”)和“
” 回复。写缩短(“1645112877”)和“
” 回复。写缩短(“1313333”)和“
” 响应。写缩短(“108977”)和“
” %>
听起来有点除法。@AnthonyWJones:这就是堆栈溢出的目的吗;所以业余爱好者可以发布一些可以被有经验的人嘲笑的问题?这不是很令人鼓舞…+1的技术,虽然你的数学在Mega方面有点不对劲。@AnthonyWJones-Oops,你说得很对。现在已修复,并添加了giga。谢谢@stealthyninja。那真的很有帮助