当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

非常值得品味的JAVASCRIPT的FormatNumber函数的三种代码

发表于: 2010-05-04   作者:bardo   来源:转载   浏览次数:
摘要: 非常值得品味的JAVAscriptt的FormatNumber函数的三种代码 第一种写法,50多行代码 /*********************************************************** javascriptt版本的FormatNumber函数,用法与VBscriptt相同, 第一个参数是待格式化的数值,第二个是保留小数位数 注意:返回的
非常值得品味的JAVAscriptt的FormatNumber函数的三种代码

第一种写法,50多行代码
/***********************************************************
javascriptt版本的FormatNumber函数,用法与VBscriptt相同,
第一个参数是待格式化的数值,第二个是保留小数位数
注意:返回的是字符串类型
第一个函数需要调用第二个函数,所以第二个不能去掉
***********************************************************/
function adv_format(value,num) //四舍五入
{
var a_str = formatnumber(value,num);
var a_int = parseFloat(a_str);
if (value.toString().length>a_str.length)
{
var b_str = value.toString().substring(a_str.length,a_str.length+1)
var b_int = parseFloat(b_str);
if (b_int<5)
{
return a_str
}
else
{
var bonus_str,bonus_int;
if (num==0)
{
bonus_int = 1;
}
else
{
bonus_str = "0."
for (var i=1; ibonus_str+="0";
bonus_str+="1";
bonus_int = parseFloat(bonus_str);
}
a_str = formatnumber(a_int + bonus_int, num)
}
}
return a_str
}

function formatnumber(value,num) //直接去尾
{
var a,b,c,i
a = value.toString();
b = a.indexOf('.');
c = a.length;
if (num==0)
{
if (b!=-1)
a = a.substring(0,b);
}
else
{
if (b==-1)
{
a = a + ".";
for (i=1;i<=num;i++)
a = a + "0";
}
else
{
a = a.substring(0,b+num+1);
for (i=c;i<=b+num;i++)
a = a + "0";
}
}
return a
}


第二种写法,7行代码
function formatNummber(strnum,digit)
{
 if (strnum.indexOf(".")==-1)
  strnum+=".";
 var nil = ((Math.pow(10,digit+1)).toString()).substring(1,digit);
 strnum += nil; 
 var numf=parseFloat(strnum)+parseFloat("0.0"+nil+"5");
 var snum = numf.toString();
 return snum.substring(0,snum.indexOf(".")+digit+1); 
}

第三种写法,1行代码
function formatNummber(src, pos)
{
    return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}



第一种写法, 这个程序员一定是个学手, 所以只会程序跟着数据走.

第二种写法,算是个高手, 因为,已会让数据跟着程序走了. 只用了一个IF, 并且构建出"0000"的字串采用的是数学算法,想法独到.

第三种写法, 应当是高手, 则是完全数学的方法, 因为, 不必要更多的代码, 主要是算法的巧妙,因为他了解round这个函数是化小数为整数的

非常值得品味的JAVASCRIPT的FormatNumber函数的三种代码

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
非常值得学习的java 绘图板源代码下载地址:http://download.csdn.net/source/2371150 package mini
非常值得学习的java 绘图板源代码下载地址:http://download.csdn.net/source/2371150 package mini
在用eclipse 构建一个包含acrgis javascript 本地js包的项目的时候。每次修改一个js文件,都会使的e
在我上篇文章《利用Database2Sharp生成的EnterpriseLibrary架构的特点 》中,主要介绍了利用该框架
Highcharts 官网: http://www.highcharts.com Highcharts 官网示例:http://www.highcharts.com/de
最近比较忙,好久都没更新博客了,今天晚上特热,上网闲看。无意间进入这个网站 http://www.72b.ne
jQuery是一个非常流行而且实用的JavaScript前端框架,本文并不是介绍jQuery的特效动画,而是分享一
Google Chrome 网上应用店中每天都会有新的应用程序加入,其中有一些被证明是非常实用、有趣的。例
   Siddharth 在 tutsplus 上写了一篇文章,介绍了20个值得一试的 JavaScript 框架。   闲话少
众所周知浏览器是使用单进程处理UI更新和JavaScript运行等多个任务的,而同一时间只能有一个任务被
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号