非常值得品味的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`函数是一种自定义功能,用于模拟VBScript中的`FormatNumber`函数,以便在JavaScript中实现数字的格式化,特别是控制小数点后的位数。在VBScript中,`FormatNumber`可以轻松地将数字格式...
本篇文章将深入探讨JavaScript中的数字格式化函数及其应用。 一、基本数字格式化 1. `toFixed()`:这个内置方法用于将数字转换为字符串,并保留指定位数的小数。例如: ```javascript let num = 3.1415926; ...
"JavaScript常用工具函数库汇总" 从给定的文件中,我们可以总结出以下几个重要的知识点:...这三个知识点都是 JavaScript 编程中非常重要的基础知识,理解和掌握这些知识点是开发高质量的 JavaScript 应用程序的基础。
在这个改进的`fm`函数中,首先我们调用`FormatNumber`,传入三个参数:待格式化的数值`nb`,小数位数2以及设置千分位分隔符为否的参数-1。这样,我们得到一个字符串形式的数值,如"5.00"或"3.50"。 接着,我们使用`...
在提供的`FormatNumberSupport.java`源代码文件中,可能包含了对`<fmt:formatNumber>`标签的支持函数或扩展,这些函数可能会帮助我们更灵活地控制数字格式化,包括自定义四舍五入行为。通过查看和理解这段源代码,...
1. **数字格式化**:normat可能提供一个`formatNumber`函数,用于将数字转换为指定格式,例如添加逗号分隔符或者限制小数点后的位数。 2. **货币格式化**:对于处理财务数据,可能有一个`formatCurrency`函数,它...
三、数组函数 1. LBound 函数:该函数用来返回数组的最小下标。例如,LBound(Array("a","b","c"))将返回0。 通过VB函数手册,我们可以快速地了解VB编程语言中各个函数的用法,从而提高我们的开发效率。这本手册...
函数在编程中起到非常重要的作用,它们是代码模块中的子程序,可以执行特定的任务并返回一个值。 描述中提到的“VBA编程所需的主要函数作了详细的介绍”,这意味着文档将覆盖在使用VBA对Access数据库进行编程时可能...
代码如下:function FormatNumber(srcStr,nAfterDot){ var srcStr,nAfterDot; var resultStr,nTen; srcStr = “”+srcStr+””; strLen = srcStr.length; dotPos = srcStr.indexOf(“.”,0); if (dotPos == -1...
以下是一个简单的示例代码,展示了如何在ASP页面中使用FormatNumber函数: ```asp Dim myNumber, formattedNumber myNumber = 123.12345 formattedNumber = FormatNumber(myNumber, 2) Response.Write("格式化后的...
在VB(Visual Basic)编程语言中,函数是执行特定任务的预定义代码块,它们能够接收参数,并返回一个结果。以下是一些VB中常用的函数及其功能的详细解释: 1. **Abs函数**:该函数返回一个数值的绝对值,无论这个...
`formatNumber`函数提供了一种灵活且强大的方式来格式化数字,无论是处理大额数值还是精细化的小数点操作,都能轻松应对。通过对格式模板的定制,可以满足不同场景下的展示需求,极大地提升了用户体验与数据呈现的...
JavaScript是一种广泛应用于Web开发的脚本语言,它在前端和后端都有丰富的应用。在实际开发中,为了提高代码的可复用性和效率,开发者通常会使用一些工具函数库。这些库提供了各种实用的函数,比如对象或数组的深...
2. **Asc(String)**:此函数返回字符串的第一个字符的ASCII码,这在处理字符编码时非常有用。 3. **Atn(number)**:计算给定角度的反正切值,返回结果在弧度制中。 4. **CallByName(object, procname, usecalltype...
在JavaScript中,数字格式化的实现通常有两种主要方法:使用内置的`toLocaleString()`方法或者自定义函数。`toLocaleString()`方法可以方便地根据指定的区域设置格式化数字,包括添加千位分隔符。然而,它可能不支持...
59. **FormatNumber函数**:将数字格式化为指定的小数位数的字符串。 60. **FormatPercent函数**:将数字格式化为百分比,末尾自动添加百分号。 61. **Function语句**:声明一个自定义函数,包含函数名、参数和...
### VBA函数大全知识点 #### 1. Abs 函数 - **功能**: 返回参数的绝对值,其类型和参数相同。 - **示例**: `Abs(-5)` 返回 5。 #### 2. Array 函数 - **功能**: 返回一个包含数组的 Variant。 - **示例**: `Array...
53. **FormatNumber函数**:将数值格式化为指定样式。 54. **FormatPercent函数**:将数值格式化为百分比。 55. **Function语句**:声明一个Function过程。 56. **GetObject函数**:从文件中获取COM对象。 57. *...