琴妹8
侠客
侠客
  • 最后登录2019-10-25
  • 发帖数39
阅读:6255回复:0

[js]数字根据精度保留小数,添加小数点以及O

楼主#
更多 发布于:2018-12-28 10:30

打印结果:

图片:1.png




/*
    浮点数,根据精度保留小数点位数,实际值不够的显示0{a:"",auccuracy:""}
    整数,需要加上逗号{a:"",real_type:'11'}

    */
    let data1={value:"123,432.1",accuracy:'1'}
    let data2={value:"-11112757",real_type:'11'}
    let data3={value:"566,5123,432.",accuracy:'3'}
    let data4={value:"566,5123,432.12",accuracy:'4'}
    let data5={value:"5665123432",real_type:'11'}
   function savaNum(data){
        if (data["accuracy"]) {
            let accuracy = data["accuracy"];
            let v = Number(data.value).toFixed(accuracy);
            //没有逗号的    
            if (!Object.is(Number(data.value), NaN)) {
                data.value = v;
            }
            else if (data.value.indexOf(",")&& !Object.is(Number(data.value.replace(/,/g,'')), NaN)) {
                //如果没有小数点
                if(data.value.indexOf('.')==-1){
                        data.value=(data.value+'.')
                }
                let len=data.value.indexOf('.')+Number(accuracy)+1;
                data.value= data.value.length<len? data.value.padEnd(len,'0'):data.value;
            }
                
       }  
       return data.value
   }
   function setCommaForinteger(data){
    
       //整数加上逗号,三位一逗号,有的地方是可以配置千分位和百分位逗号,如1,111,111,也可以是111,1111
        if (data.real_type=='11') {
            data.value=data.value.toString()
            for (let i = 0; i < Math.floor((data.value.length-(1+i))/3); i++) {
                //如1,111,111
                //data.value= data.value.substring(0,data.value.length-(4*i+3))+','+data.value.substring(data.value.length-(4*i+3));
                //千分位如111,1111
                data.value= data.value.substring(0,data.value.length-(4*i+4))+','+data.value.substring(data.value.length-(4*i+4));
            }
        }
        return data.value
   }
    console.log("精度1",savaNum(data1))
    console.log("整数",setCommaForinteger(data2))
    console.log("精度3",savaNum(data3))
    console.log("精度4",savaNum(data4))
    console.log("整数5",setCommaForinteger(data5))
代码得海洋有些深,我这还不会游泳,就带着游泳圈,还要带个打气筒,时不时打点气,不让自己沉下去。 希望通过我们得交流和学习,能够慢慢有艘船,在大海中航行,不用为了活下去而忽略海上得风景,其实慢慢成长我们会发现,大海,真是个神秘得地方。 学习使我们优秀,我们一起加油吧!
游客


返回顶部

公众号

公众号