Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

js tofixed方法保留小数点后n位后返回的是字符串类型,转换成数值类型后末尾0被舍去

const getFloat=(value:any,n:any)=>{
    value = Number(value);
    n=n?parseInt(n):0;
    if(n<=0){
        return Math.round(value);
    }
    value=Math.round(value*Math.pow(10,n))/Math.pow(10,n);
    value = Number(value).toFixed(n);
    return value

}

getFloat方法用来保留n,位小数,不足位数补0,使用toFixed方法后返回的是字符串类型,但是我需要的是满足该条件的数值类型。

如果使用parseFloat方法或者value = +Number(value).toFixed(n) ,返回的是数值类型,但是将末尾的0抹去了,比如将'0.0030'变成0.003,就不满足4位小数的要求了。

请问有没有办法能够在转换成数值类型后任然保留4位小数?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

没有,数字的小数部位最后一位0是无意义的。"满足4位小数"主要是为了满足页面展示需求,这种情况只能转成字符串格式。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...