`
bardo
  • 浏览: 377713 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11796
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10097
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9480
社区版块
存档分类
最新评论

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

阅读更多
非常值得品味的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这个函数是化小数为整数的
0
0
分享到:
评论

相关推荐

    javascript FormatNumber函数实现方法

    JavaScript中的`FormatNumber`函数是一种自定义功能,用于模拟VBScript中的`FormatNumber`函数,以便在JavaScript中实现数字的格式化,特别是控制小数点后的位数。在VBScript中,`FormatNumber`可以轻松地将数字格式...

    JavaScript数字格式化函数

    本篇文章将深入探讨JavaScript中的数字格式化函数及其应用。 一、基本数字格式化 1. `toFixed()`:这个内置方法用于将数字转换为字符串,并保留指定位数的小数。例如: ```javascript let num = 3.1415926; ...

    JavaScript常用工具函数库汇总.docx

    "JavaScript常用工具函数库汇总" 从给定的文件中,我们可以总结出以下几个重要的知识点:...这三个知识点都是 JavaScript 编程中非常重要的基础知识,理解和掌握这些知识点是开发高质量的 JavaScript 应用程序的基础。

    改进一下asp自带的formatNumber函数

    在这个改进的`fm`函数中,首先我们调用`FormatNumber`,传入三个参数:待格式化的数值`nb`,小数位数2以及设置千分位分隔符为否的参数-1。这样,我们得到一个字符串形式的数值,如"5.00"或"3.50"。 接着,我们使用`...

    JSTL标签的formatNumber 格式化数字,四舍六入问题。

    在提供的`FormatNumberSupport.java`源代码文件中,可能包含了对`&lt;fmt:formatNumber&gt;`标签的支持函数或扩展,这些函数可能会帮助我们更灵活地控制数字格式化,包括自定义四舍五入行为。通过查看和理解这段源代码,...

    normat通用javascript编号字符串格式化

    1. **数字格式化**:normat可能提供一个`formatNumber`函数,用于将数字转换为指定格式,例如添加逗号分隔符或者限制小数点后的位数。 2. **货币格式化**:对于处理财务数据,可能有一个`formatCurrency`函数,它...

    VB函数手册

    三、数组函数 1. LBound 函数:该函数用来返回数组的最小下标。例如,LBound(Array("a","b","c"))将返回0。 通过VB函数手册,我们可以快速地了解VB编程语言中各个函数的用法,从而提高我们的开发效率。这本手册...

    Access函数汇总.pdf

    函数在编程中起到非常重要的作用,它们是代码模块中的子程序,可以执行特定的任务并返回一个值。 描述中提到的“VBA编程所需的主要函数作了详细的介绍”,这意味着文档将覆盖在使用VBA对Access数据库进行编程时可能...

    javascript四舍五入函数代码分享(保留后几位)

    代码如下: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页面中使用FormatNumber函数: ```asp Dim myNumber, formattedNumber myNumber = 123.12345 formattedNumber = FormatNumber(myNumber, 2) Response.Write("格式化后的...

    vb中常用的函数(比较实用)

    在VB(Visual Basic)编程语言中,函数是执行特定任务的预定义代码块,它们能够接收参数,并返回一个结果。以下是一些VB中常用的函数及其功能的详细解释: 1. **Abs函数**:该函数返回一个数值的绝对值,无论这个...

    javascript格式化数字

    `formatNumber`函数提供了一种灵活且强大的方式来格式化数字,无论是处理大额数值还是精细化的小数点操作,都能轻松应对。通过对格式模板的定制,可以满足不同场景下的展示需求,极大地提升了用户体验与数据呈现的...

    JavaScript常用工具函数库汇总

    JavaScript是一种广泛应用于Web开发的脚本语言,它在前端和后端都有丰富的应用。在实际开发中,为了提高代码的可复用性和效率,开发者通常会使用一些工具函数库。这些库提供了各种实用的函数,比如对象或数组的深...

    vb.net 常用函数

    2. **Asc(String)**:此函数返回字符串的第一个字符的ASCII码,这在处理字符编码时非常有用。 3. **Atn(number)**:计算给定角度的反正切值,返回结果在弧度制中。 4. **CallByName(object, procname, usecalltype...

    javascript 写的数字formater,千位分割

    在JavaScript中,数字格式化的实现通常有两种主要方法:使用内置的`toLocaleString()`方法或者自定义函数。`toLocaleString()`方法可以方便地根据指定的区域设置格式化数字,包括添加千位分隔符。然而,它可能不支持...

    VB函数大全 Microsoft Word 文档.docx

    59. **FormatNumber函数**:将数字格式化为指定的小数位数的字符串。 60. **FormatPercent函数**:将数字格式化为百分比,末尾自动添加百分号。 61. **Function语句**:声明一个自定义函数,包含函数名、参数和...

    VBA函数大全(自己整理的)

    ### VBA函数大全知识点 #### 1. Abs 函数 - **功能**: 返回参数的绝对值,其类型和参数相同。 - **示例**: `Abs(-5)` 返回 5。 #### 2. Array 函数 - **功能**: 返回一个包含数组的 Variant。 - **示例**: `Array...

    VBS函数大集合

    53. **FormatNumber函数**:将数值格式化为指定样式。 54. **FormatPercent函数**:将数值格式化为百分比。 55. **Function语句**:声明一个Function过程。 56. **GetObject函数**:从文件中获取COM对象。 57. *...

Global site tag (gtag.js) - Google Analytics