给你写个js函数直接调用可以格式化数字的【以下是代码部分】script
创新互联是专业的尼金平网站建设公司,尼金平接单;提供成都网站设计、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行尼金平网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
/**
* 格式化数字显示方式
* 用法
* formatNumber(12345.999,'#,##0.00');
* formatNumber(12345.999,'#,##0.##');
* formatNumber(123,'000000');
* @param num
* @param pattern
*/
function formatNumber(num,pattern){
var strarr = num?num.toString().split('.'):['0'];
var fmtarr = pattern?pattern.split('.'):[''];
var retstr='';
// 整数部分
var str = strarr[0];
var fmt = fmtarr[0];
var i = str.length-1;
var comma = false;
for(var f=fmt.length-1;f=0;f--){
switch(fmt.substr(f,1)){
case '#':
if(i=0 ) retstr = str.substr(i--,1) + retstr;
break;
case '0':
if(i=0) retstr = str.substr(i--,1) + retstr;
else retstr = '0' + retstr;
break;
case ',':
comma = true;
retstr=','+retstr;
break;
}
}
if(i=0){
if(comma){
var l = str.length;
for(;i=0;i--){
retstr = str.substr(i,1) + retstr;
if(i0 ((l-i)%3)==0) retstr = ',' + retstr;
}
}
else retstr = str.substr(0,i+1) + retstr;
}
retstr = retstr+'.';
// 处理小数部分
str=strarr.length1?strarr[1]:'';
fmt=fmtarr.length1?fmtarr[1]:'';
i=0;
for(var f=0;ffmt.length;f++){
switch(fmt.substr(f,1)){
case '#':
if(istr.length) retstr+=str.substr(i++,1);
break;
case '0':
if(istr.length) retstr+= str.substr(i++,1);
else retstr+='0';
break;
}
}
return retstr.replace(/^,+/,'').replace(/\.$/,'');
}
alert(formatNumber(12345.999,'#,##0.00'));
/script
javascript有一个很有用的函数eval("string")
这个函数可以把字符串转换为对象或者可以执行的语句,例如你的代码可以用
obj2=eval("document.a.c"+i),另外你还可以这样写eval("alert()"),
eval("a+=2"),这样你就可以让用户输入的javascript语句执行
你的docheck()如此改即可:
function docheck(){
obj1=eval("document.a.a"+i)
obj2=eval("document.a.c"+i)
obj1.value=obj2.options[obj2.selectedIndex].value;
}
javascript中判断变量是否为数字类型的方法有两种:
方法一:
function IsNum(s)
{
if(s!=null){
var r,re;
re = /\d*/i; //\d表示数字,*表示匹配多个数字
r = s.match(re);
return (r==s)?true:false;
}
return false;
}
方法二:
function IsNum(s)
{
if (s!=null s!="")
{
return !isNaN(s);
}
return false;
}
两种方法都可以检查参数是否为数字。
第一种使用正则表达式检查,对于检查的内容更加灵活,但显得麻烦;
第二种方法,直接调用系统的isNaN() ,对所有数字均有效,简单快捷。
数字因为js只有number这一种类型,包含整数和浮点数。
运算符有算术运算符、操作运算符、比较运算符、和逻辑运算符。
我最近再用的一个很好用的application, 叫实验楼,里面做了很详细明了的归类,故搬运过来。
①算数运算符
②操作运算符
③比较运算符
④逻辑运算符
⑤运算符的优先级
之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer)。
JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的double类型一样。但实际操作中比如数组索引、位操作则是基于32位整数。
取整的方法可以按照下面的五种来进行。
方式一、使用取余运算符判断
任何整数都会被1整除,即余数是0。利用这个规则来判断是否是整数。
function isInteger(obj) {
return obj%1 === 0
}
isInteger(3) // true
isInteger(3.3) // false
以上输出可以看出这个函数挺好用,但对于字符串和某些特殊值显得力不从心
isInteger('') // true
isInteger('3') // true
isInteger(true) // true
isInteger([]) // true
对于空字符串、字符串类型数字、布尔true、空数组都返回了true,真是难以接受。对这些类型的内部转换细节感兴趣的请参考:JavaScript中奇葩的假值
因此,需要先判断下对象是否是数字,比如加一个typeof
function isInteger(obj) {
return typeof obj === 'number' obj%1 === 0
}
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
二、使用Math.round、Math.ceil、Math.floor判断
整数取整后还是等于自己。利用这个特性来判断是否是整数,Math.floor示例,如下
function isInteger(obj) {
return Math.floor(obj) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
这个直接把字符串,true,[]屏蔽了,代码量比上一个函数还少。
三、通过parseInt判断
function isInteger(obj) {
return parseInt(obj, 10) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
但也有一个缺点
isInteger(1000000000000000000000) // false
原因是parseInt在解析整数之前强迫将第一个参数解析成字符串。
四、通过位运算判断
function isInteger(obj) {
return (obj | 0) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
这个函数位运算只能处理32位以内的数字,对于超过32位的无能为力,如
isInteger(Math.pow(2, 32)) // 32位以上的数字返回false了
五、ES6提供了Number.isInteger
Number.isInteger(3) // true
Number.isInteger(3.1) // false
Number.isInteger('') // false
Number.isInteger('3') // false
Number.isInteger(true) // false
Number.isInteger([]) // false
首先我们看看最简单的实现方法,需要达到这样的目的。
输入一串数字或者字符串,最后返回格式化后的字符串,每隔3位用逗号分隔,通过四舍五入保留小数点后2两位。
我们来分析下方法的实现过程。
替换掉原本传入数据中可能出现的'$'和',',然后判断是否为数字。
判断传入的数字是正数还是负数。
判断小数位数的舍入性。
每隔三位,添加一个逗号。
重新拼接字符串,正负号+整数位+小数点+小数位