FormatNumber 函數
可以參閱相關函數:FormatCurrency 函數 | FormatDateTime 函數 | FormatPercent 函數
返回表達式,此表達式已被格式化為數值。
FormatNumber(Expression[, NumDigitsAfterDecimal[, IncludeLeadingDigit[, UseParensForNegativeNumbers[, GroupDigits]]]])
Arguments 參數:
Expression:必選項。要被格式化的表達式。
NumDigitsAfterDecimal:可選項。指示小數點右側顯示位數的數值。默認值為 -1,指示使用的是計算機的區域設置。
IncludeLeadingDigit:可選項。三態常數,指示是否顯示小數值小數點前面的零。有關數值,請參閱“設置”部分。
UseParensForNegativeNumbers:可選項。三態常數,指示是否將負值置于括號中。有關數值,請參閱“設置”部分。
GroupDigits:可選項。三態常數,指示是否使用計算機區域設置中指定的數字分組符號將數字分組。有關數值,請參閱“設置”部分。
設置 IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 參數可以有以下值:
常數 值 描述
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 使用計算機區域設置中的設置。
說明
當省略一個或多個可選項參數時,由計算機區域設置提供被省略參數的值。
注意:所有設置信息均取自區域設置的“數字”附簽。
下面例子利用 FormatNumber 函數把數值格式化為帶四位小數點的數:
Function FormatNumberDemo
Dim MyAngle, MySecant, MyNumber
MyAngle = 1.3 '用弧度定義角
MySecant = 1/Cos(MyAngle) '計算正割值
FormatNumberDemo=FormatNumber(MySecant,4) '把 MySecant 格式化為帶四位小數點的數
End function
VBScript有兩個用于格式化數字的負數。用函數Formatnumber(),你可以指定小數點后的顯示位數,是否顯示前導的零,顯示負數時是否使用空格,和是否使用分隔符等。下面是一些例子及其返回值:
<%=Formatnumber(6665.8999)%>
6,665.90
<%=Formatnumber(“6665.8999”)%>
6,665.90
<%=Formatnumber(6665.8999,3)%>
6,665.900
<%=Formatnumber(-6665.8999,3,-1,-1,0)%>
(6665.900)
注意第二個例子用了一個字符串,二不是數字。當一個字符串可以被解釋為一個數字時,你可以用該字符串作為函數Formatnumber()的參數。如果該字符串不能被解釋為數字,則會返回錯誤。
最后一個例子用到了函數Formatnumber()的所有參數:
第一個參數(-6665.8999)指定了要進行格式化的數字。
第二個參數(3)指定了小數點后顯示的位數。
第三個參數(-1)指定了是否顯示前導的零。
第四個參數(-1)指定是否對負數使用括號。
最后一個參數(0)指定是否顯示分隔符。
注意
許多VBScript函數使用三態常量。函數Formatnumber()的第三,第四,第五個參數可以接受三態常量或它們的值。下面列出了三態常量:
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 使用區域設置
你也可以指定這些格式的某個特定屬性依賴于Windows控制面板中的區域設置。
如果你需要格式化百分數,應使用函數Formatpercent():
<%=Formatpercent(12)%>
1,200.00%
<%=Formatpercent(“12”)%>
1,200.00%
這個函數把它的第一個參數乘以100,并在結果后面追加一個百分號。函數Formatpercent()也可以接受許多附加參數,以改變輸出格式。
下面例子利用 FormatPercent 函數把表達式格式化為百分數:
Dim MyPercent
MyPercent = FormatPercent(2/32) 'MyPercent 包含 6.25%。
//////////////////////////////////
函數
******************************
FormatDateTime(Date[, NamedFormat])
//////////////////////////////////
NamedFormat的取值:
******************************
常數 值 描述
---------------------------------------------------------------------------------
vbGeneralDate 0 顯示日期和/或時間。如果有日期部分,則將該部分顯示為短日期格式。如果有時間部分,則將該部分顯示為長時間格式。如果都存在,則顯示所有部分。
vbLongDate 1 使用計算機區域設置中指定的長日期格式顯示日期。
vbShortDate 2 使用計算機區域設置中指定的短日期格式顯示日期。
vbLongTime 3 使用計算機區域設置中指定的時間格式顯示時間。
vbShortTime 4 使用 24 小時格式 (hh:mm) 顯示時間。
ASP之FormatDateTime函數
FormatDateTime 函數
請參閱
FormatCurrency 函數 | FormatNumber 函數 | FormatPercent 函數
返回表達式,此表達式已被格式化為日期或時間。
FormatDateTime(Date[, NamedFormat])
參數
Date:必選項。要被格式化的日期表達式。
NamedFormat:可選項。指示所使用的日期/時間格式的數值,如果省略,則使用 vbGeneralDate。
設置
NamedFormat 參數可以有以下值:
常數 值 描述
vbGeneralDate 0 顯示日期和/或時間。如果有日期部分,則將該部分顯示為短日期格式。如果有時間部分,則將該部分顯示為長時間格式。如果都存在,則顯示所有部分。
vbLongDate 1 使用計算機區域設置中指定的長日期格式顯示日期。
vbShortDate 2 使用計算機區域設置中指定的短日期格式顯示日期。
vbLongTime 3 使用計算機區域設置中指定的時間格式顯示時間。
vbShortTime 4 使用 24 小時格式 (hh:mm) 顯示時間。
說明
下面例子利用 FormatDateTime 函數把表達式格式化為長日期型,并且把它賦給 MyDateTime:
Function GetCurrentDate
'FormatDateTime 把日期型格式化為長日期型。
GetCurrentDate = FormatDateTime(Date, 1)
End Function
JavaScript中如何實現FormatNumber函數
如果有一個數字498.8573945,如何把它格式化成兩位小數據呢?用過ASP的都知道,在VbScript里我們可以調用FormatNumber,即用FormatNumber(498.8573945,2)就可以輸出:498.86。
由于JavaScript里沒有這個函數,那么我們該如何實現呢?下面我就給出這個函數,大家可以把:<SCRIPT LANGUAGE=javascript SRC="FormatNumber.js"></SCRIPT> 這一句加入你的HTML頁即可,也可以用
<!-- #include file="FormatNumber.js" -->
加入你的ASP頁;或用
<? include("FormatNumber.js") ?>
加入PHP頁中;或用
<%@ #include file="FormatNumber.js" %>
加入JSP頁。
這個FormatNumber子函數如下:
<SCRIPT LANGUAGE=javascript>
<!--
function FormatNumber(srcStr,nAfterDot){
var srcStr,nAfterDot;
var resultStr,nTen;
srcStr = ""+srcStr+"";
strLen = srcStr.length;
dotPos = srcStr.indexOf(".",0);
if (dotPos == -1){
resultStr = srcStr+".";
for (i=0;i<nAfterDot;i++){
resultStr = resultStr+"0";
}
return resultStr;
}
else{
if ((strLen - dotPos - 1) >= nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j<nAfterDot;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
return resultStr;
}
else{
resultStr = srcStr;
for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
該文章在 2024/8/27 12:45:18 編輯過