调整小数的格式保留小数点后两位


Posted in Javascript onMay 14, 2014

在开发过程中经常遇到要调整小数的格式,如保留小数点后两位等等。方法也颇为常见,备忘如下。

第一种,利用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

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

第三种,转换函数,这段代码来源于国外一个论坛。

function roundNumber(number,decimals) { 
var newString;// The new rounded number 
decimals = Number(decimals); 
if (decimals < 1) { 
newString = (Math.round(number)).toString(); 
} else { 
var numString = number.toString(); 
if (numString.lastIndexOf(".") == -1) {// If there is no decimal point 
numString += ".";// give it one at the end 
} 
var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number 
var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with 
var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want 
if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated 
if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point 
while (cutoff > 0 && (d1 == 9 || isNaN(d1))) { 
if (d1 != ".") { 
cutoff -= 1; 
d1 = Number(numString.substring(cutoff,cutoff+1)); 
} else { 
cutoff -= 1; 
} 
} 
} 
d1 += 1; 
} 
if (d1 == 10) { 
numString = numString.substring(0, numString.lastIndexOf(".")); 
var roundedNum = Number(numString) + 1; 
newString = roundedNum.toString() + '.'; 
} else { 
newString = numString.substring(0,cutoff) + d1.toString(); 
} 
} 
if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string 
newString += "."; 
} 
var decs = (newString.substring(newString.lastIndexOf(".")+1)).length; 
for(var i=0;i<decimals-decs;i++) newString += "0"; 
//var newNumber = Number(newString);// make it a number if you like 
document.roundform.roundedfield.value = newString; // Output the result to the form field (change for your purposes) 
}

5) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

6) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

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

Javascript 相关文章推荐
jquery用get实现ajax在ie里面刷新不进入后台解决方法
Aug 12 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
Mar 28 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
AngularJS入门教程一:路由用法初探
May 27 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
Jul 04 Javascript
Vue 2.0 侦听器 watch属性代码详解
Jun 19 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
js实现星星海特效的示例
Sep 28 Javascript
原生js的弹出层且其内的窗口居中
May 14 #Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 #Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 #Javascript
JavaScript函数获取事件源的小例子
May 14 #Javascript
javascript单引号和双引号的区别和处理
May 14 #Javascript
document.write的几点使用心得
May 14 #Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 #Javascript
You might like
php中显示数组与对象的实现代码
2011/04/18 PHP
php 文件上传实例代码
2012/04/19 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
CI框架的安全性分析
2016/05/18 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python实现的读写json文件功能示例
2018/06/05 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
高考考python编程是真的吗
2020/07/20 Python
python搜索算法原理及实例讲解
2020/11/18 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
工作人员思想汇报
2014/01/09 职场文书
医院节能减排方案
2014/06/13 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
2019广播稿怎么写
2019/04/17 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang