`
qindongliang1922
  • 浏览: 2152308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116481
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124715
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58720
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70510
社区版块
存档分类
最新评论

JavaScript一行代码保留任意位小数

阅读更多
今天做一个业务时,结果由于跟权重有关,Java默认显示保留的是15位小数,所以客户要求保留3位小数,其实这个需求很简单,前台,后台都可以完成这个任务,但是为了系统的性能考虑,这种工作,能用前台完成就用前台完成吧,尽量用客户端分担服务器的压力,尤其是在高并发的场景下,任何一个细节都有可能影响整体的性能,进而并发数量越大,这个细节就会有可能扩大成致命的问题。

好了,不说废话了,进入正题,这个保留小数位的做法,JS可以有很多种实现方法,网上一搜又是一大堆循环截取,又是下载第三方插件js完成,其实都可以,但是没必要那么麻烦,截取出来的小数位没有四舍五入的功能,所以也被放弃了,最后直接使用Math这个函数来完成就可以了
,使用方法,Math.round(小数*10)/10.0保留一位小数,Math.round(小数*100)/100.0保留二位小数,依次类推就可以实现保留任意位小数了,并具有四舍五入的功能,另外需要注意的是,如果最后一位小数为0,那么JS就会自动省略,当然,我们大部分业务都是保留1-3位小数。

散仙的JS核心代码如下:

Math.round(n.tf*1000)/1000.0

无保留小数的结果:


保留3位小数后的结果:




效果还不错!

  • 大小: 23.3 KB
  • 大小: 17.7 KB
1
4
分享到:
评论
4 楼 krystal_0424 2013-10-25  
<script type="text/javascript">
function roundUp(num,x){
  return (num+5*Math.pow(10,-(x+1))).toFixed(x);
};

alert(roundUp(10.235,2));
</script>
3 楼 krystal_0424 2013-10-25  
<script type="text/javascript">
function roundUp(num,x){
  return (num+5*Math.pow(10,-(x+1))).toFixed(x);
};

alert(roundUp(10.235,2));
</script>
[color=red][/color]
2 楼 qindongliang1922 2013-10-25  
蹲街吃豆腐 写道
js自带的toFixed()方法不就直接解决了问题?


这个方法是可以,但是容易出问题,你自己多测测就知道了,不推荐使用toFixed()方法。
1 楼 蹲街吃豆腐 2013-10-25  
js自带的toFixed()方法不就直接解决了问题?

相关推荐

Global site tag (gtag.js) - Google Analytics