随笔 - 154  文章 - 60  trackbacks - 0
<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

声明:

该blog是为了收集资料,认识朋友,学习、提高技术,所以本blog的内容除非声明,否则一律为转载!!

感谢那些公开自己技术成果的高人们!!!

支持开源,尊重他人的劳动!!

常用链接

留言簿(3)

随笔分类(148)

随笔档案(143)

收藏夹(2)

其他

学习(技术)

观察思考(非技术)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

【来源:JsJava官方中文博客

   对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿25.9878来说,我们可能会希望它能保留两位小数来说出,即结果为25.99,或者对于0.345678,希望能够按百分号输出,并保留小数点后两位,即结果为34.57%,又例如我们希望将数字56456456按照科学计数法来显示,并保留小数点后两位,即结果为5.65e+7,类似例子当然还有很多。

   那么在Javascript标准之中,是否提供了对这些格式化输出的支持呢,可以说Javascript也提供了部分支持,但是提供的并部完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下:

  toExponential([fractionDigits])   :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数。
  toFixed([fractionDigits])   :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数。
  toPrecision([precision])   :将数字按指定的精度返回(这个精度不是指小数点后几位),其中precision是指定的精度值。

   如果你不会使用上面的函数,我简单给你举个例子:

   var num=56.45678;
   var rs1=num.toExponential(2);//rs1的值为5.65e+1
   var rs2=num.toFixed(2);//rs的值为56.45
   var rs3=num.toPrecision(2);//rs的值为56

   虽然说Number对象提供的这些方法能够解决不少的数字转化问题,但是对于许多情况还是不好满足的,例如对百分号的支持等等。

   为了解决这个问题,并提供更为强大和灵活的数字格式化要求,JsJava专门提供了的Javascript自定义类来进行支持,你可以下载jsjava-1.0.js,引用其中的src/jsjava/text/NumberFormat.js或者直接引用jslib/jsjava-1.0.js,举例如下:

<script src="js/jsjava/text/NumberFormat.js"></script>
<script src="js/jsjava/lang/StringBuffer.js"></script>
<script src="js/jsjava/lang/IllegalArgumentException.js"></script>
<script>
     var nf=new DecimalFormat();
     nf.applyPattern("000.000%");
     var res=nf.format(-0.893566);
     document.write(res+"<br>");
     nf.applyPattern("0000.00");
     var res=nf.format(-53.385967);
     document.write(res+"<br>");
     nf.applyPattern("0000.000E00");
     var res=nf.format(53.385967);
     document.write(res+"<br>");
</script>

   显示结果为:

   -89.357%
   -53.39
   5338.597e-2

   JsJava是非常强大的,它是目前世界上最为全面的Javascript类库体系,使用JsJava,将更使你的界面脚本逻辑开发变得更加简单。

posted on 2008-03-20 16:57 lk 阅读(1303) 评论(0)  编辑  收藏 所属分类: ajax&js

只有注册用户登录后才能发表评论。


网站导航: