用javascript实现浮点数的截取小数位数,并四舍五入
时间:2007-02-17 来源:PHP爱好者
以前做过一个,没考虑四舍五入,现在把代码改进了一下,如下:
  /***********************************************************
  Function formatnumber(value,num)
  Written by zergling
  javascript版本的FormatNumber函数,用法与VBScript相同,第一个参数是待格式化的数值,第二个是保留小数位数
  注意:返回的是字符串类型
  第一个函数需要调用第二个函数,所以第二个不能去掉
  ***********************************************************/
  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; i<num; i++)
  bonus_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
  }
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.










