字符串转换问题!如何将"1234567890"转换为"1,234,567,890",也就是从后往前每三位加一个逗号(千进制)

wangdequan1024 2005-04-07 06:00:06
如题!
VBSCRIPT的,
JAVASCRIPT就不用了,
越简单越好.
好用马上结贴~
先谢了!
...全文
470 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
madpolice 2005-04-08
  • 打赏
  • 举报
回复
受不了。。。。。

不是要vbscript的吗?meizz写的是vbscript?

vbscript自带函数,根本不需要自己再写函数
wangdequan1024 2005-04-08
  • 打赏
  • 举报
回复
正则表达式,唉,什么时候能用好啊
wangdequan1024 2005-04-08
  • 打赏
  • 举报
回复
感谢: myvicy(在线解决:你的问题我来解决(因为我不会骗人,所以我最恨别人骗我。))
不过你的没有处理有小数点的情况,还好我要处理的是整数,能不能请你把带小数点的情况再帮忙想想

同时感谢 meizz(梅花雪)
enjsky(郭志军)
超级大笨狼 2005-04-08
  • 打赏
  • 举报
回复
FormatCurrency 函数


返回表达式,此表达式已被格式化为货币值(使用系统控制面板中定义的货币符号)。

FormatCurrency(
expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]
)
参数
Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:

常数 值 描述
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 使用计算机区域设置中的设置。

说明
当省略一个或多个可选项参数时,由计算机区域设置提供被省略参数的值。与货币值相关的货币符号的位置由系统的区域设置决定。

注意 除“显示起始的零”设置来自区域设置的“数字”附签外,所有其他设置信息均取自区域设置的“货币”附签。
下面例子利用 FormatCurrency 函数把 expression 格式化为 currency 并且赋值给 MyCurrency:

Dim MyCurrency
MyCurrency = FormatCurrency(1000) 'MyCurrency 包含 $1000.00 。
iuhxq 2005-04-08
  • 打赏
  • 举报
回复
不看不知道呀,还以为很简单呢

负数的有考虑过吗?小数考虑过吗?呵呵

看了楼上的真长见识,佩服!
underone 2005-04-08
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
function formatNum(num, digit) //将数字转换成三位逗号分隔的样式
{
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)) b = b.replace(re, "$1,$2$3");
if (c && digit && new RegExp("^.(\\d{"+ digit +"})(\\d)").test(c)){
if (RegExp.$2>4) c = (parseFloat(RegExp.$1)+1)/Math.pow(10, digit);
else c = "."+ RegExp.$1;}
return a +""+ b +""+ (c+"").substr((c+"").indexOf("."));
}
alert(formatNum(-12345678.005, 2));
alert(formatNum("12345678.1256246", 3));
alert(formatNum("10000000000000000000000000000000000000000"));
//-->
</SCRIPT>
madpolice 2005-04-08
  • 打赏
  • 举报
回复
formatcurrency是干什么用的阿?
madpolice 2005-04-08
  • 打赏
  • 举报
回复
<script language="vbscript">
dim a,b
a="1234567890"
b=formatcurrency(a,0)
alert right(b,len(b)-1)
</script>
enjsky 2005-04-08
  • 打赏
  • 举报
回复
<%=formatnumber(1234567890,0)%>
meizz 2005-04-08
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
function formatNum(num, digit) //将数字转换成三位逗号分隔的样式
{
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)) b = b.replace(re, "$1,$2$3");
if (c && digit && new RegExp("^.(\\d{"+ digit +"})(\\d)").test(c)){
if (RegExp.$2>4) c = (parseFloat(RegExp.$1)+1)/Math.pow(10, digit);
else c = "."+ RegExp.$1;}
return a +""+ b +""+ (c+"").substr((c+"").indexOf("."));
}
alert(formatNum(-12345678.005, 2));
alert(formatNum("12345678.1256246", 3));
alert(formatNum("10000000000000000000000000000000000000000"));
//-->
</SCRIPT>
libao1983 2005-04-08
  • 打赏
  • 举报
回复
呵呵
我临下班了才写的
不好意思了阿
创造奇迹9999 2005-04-07
  • 打赏
  • 举报
回复
不对,不对,不对!



是这位 libao1983(男儿在世须轻狂,待披长剑斩大江) 的不行!
创造奇迹9999 2005-04-07
  • 打赏
  • 举报
回复
楼上的程序不行,我测试了!
myvicy 2005-04-07
  • 打赏
  • 举报
回复
测试过的。
myvicy 2005-04-07
  • 打赏
  • 举报
回复
<script language=vbscript>
mystr="12345678"
dim newstr
function format(str)
l=len(str)
n=l mod 3
newstr=mid(str,1,n)+","
for i=1 to (l-n)/3
newstr=newstr+mid(str,(i-1)*3+1,3)+","
next
newstr=mid(newstr,1,len(newstr)-1)
format=newstr
end function
msgbox format(mystr)
</script>
libao1983 2005-04-07
  • 打赏
  • 举报
回复
for i=1 to len(str)
str=left(str,(len(str)-3+(i-1)*4)) & "," & right(str,(3+(i-1)*4))
i=i+1
loop
没有测试
因为下班了
呵呵
你自己测试下吧呵呵

libao1983 2005-04-07
  • 打赏
  • 举报
回复
没有
可以给写一个

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧