网站地图    收藏   

主页 > 前端 > javascript >

javascript保留小数位函数详解

来源:自学PHP网    时间:2023-11-07 10:01 作者: 阅读:

[导读] js本身就为我提供了不少保留小数位的函数,当然我也可以自己去写一些保留小数位的方法,下面我来给各位同学介绍一些。...

第一种,利用math.round


代码如下

var original=28.453

1) //round "original" to two decimals

var result=Math.round(original*100)/100;  //returns 28.45

2) // round "original" to 1 decimal

var result=Math.round(original*10)/10;  //returns 28.5

 

第二种,js1.5以上可以利用toFixed(x) ,可指定数字截取小数点后 x位


代码如下

3) //round "original" to two decimals

var result=original.toFixed(2); //returns 28.45


4) // round "original" to 1 decimal

var result=original.toFixed(1); //returns 28.5


以上两种方法最通用,但却无法满足某些特殊要求,比如保留小数点后两位,如果不满两位,不满两位则补零。此时就有了第三种方法。

下面自己整理了一些保留小数函数


 代码如下


//保留两位小数  

//功能:将浮点数四舍五入,取小数点后2位 

function toDecimal(x) { 

    var f = parseFloat(x); 

    if (isNaN(f)) { 

        return; 

    } 

    f = Math.round(x*100)/100; 

    return f; 



//制保留2位小数,如:2,会在2后面补上00.即2.00 

function toDecimal2(x) { 

    var f = parseFloat(x); 

    if (isNaN(f)) { 

        return false; 

    } 

    var f = Math.round(x*100)/100; 

    var s = f.toString(); 

    var rs = s.indexOf('.'); 

    if (rs < 0) { 

        rs = s.length; 

        s += '.'; 

    } 

    while (s.length <= rs + 2) { 

        s += '0'; 

    } 

    return s; 


function fomatFloat(src,pos){    

     return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);    



//四舍五入 

alert("保留2位小数:" + toDecimal(3.14159267)); 

alert("强制保留2位小数:" + toDecimal2(3.14159267)); 

alert("保留2位小数:" + toDecimal(3.14559267)); 

alert("强制保留2位小数:" + toDecimal2(3.15159267)); 

alert("保留2位小数:" + fomatFloat(3.14559267, 2)); 

alert("保留1位小数:" + fomatFloat(3.15159267, 1)); 

 

//五舍六入 

alert("保留2位小数:" + 1000.003.toFixed(2)); 

alert("保留1位小数:" + 1000.08.toFixed(1)); 

alert("保留1位小数:" + 1000.04.toFixed(1)); 

alert("保留1位小数:" + 1000.05.toFixed(1)); 

 

//科学计数 

alert(3.1415.toExponential(2)); 

alert(3.1455.toExponential(2)); 

alert(3.1445.toExponential(2)); 

alert(3.1465.toExponential(2)); 

alert(3.1665.toExponential(1)); 


//精确到n位,不含n位 

alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 

alert("精确到小数点第3位" + 3.1465.toPrecision(3)); 

alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 

alert("精确到小数点第2位" + 3.1455.toPrecision(2)); 

alert("精确到小数点第5位" + 3.141592679287.toPrecision(5)); 


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论