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 编辑过