JavaScript随手笔记---保留小数位
文章目录
- 前言
- 一、JS四舍五入保留小数
- 1.toFixed()函数
- 二、JS不四舍五入保留小数
- 1.Math.floor()和Math.ceil()函数
- 2.parseInt()函数
- 3.parseInt()和toFixed()、Math.floor()与toFixed()
- 4.字符串匹配
- 总结
前言
在JS中保留小数的方法有很多,可以Math函数或者以字符串形式来进行处理,但在有的时候需要四舍五入,有时候不需要,这里围着这两点展开;
一、JS四舍五入保留小数
1.toFixed()函数
使用toFixed()函数可以对小数位进行四舍五入,得到的结果是字符串类型;
var number = 0.9996
var Test = number.toFixed(2); //这里会自动四舍五入,保留两位小数
console.log(Test); //1.00
console.log(typeof(Test)); //String
二、JS不四舍五入保留小数
这里的方法均不会对小数四舍五入处理
1.Math.floor()和Math.ceil()函数
Math.floor()对数值进行向下取整,Math.ceil()向上取整,并且不改变数据类型。这两个函数均只保留整数,所以还要/100才能得到想要的数据;
var number = 1.7332;
var Test1 = Math.floor(number * 100) / 100;//保留两位小数,
var Test2 = Math.ceil(number * 100) / 100;//保留两位小数
console.dir(Test1); //1.73
console.dir(typeof(Test1)); // number
console.dir(Test2); //1.74
console.dir(typeof(Test2)); // number
2.parseInt()函数
从前面两个函数来看,也可以使用parseInt()进行取整后再除以100。
var number = 0.99996;
var Test1 = parseInt(number * 100) / 100;//保留两位小数,
console.dir(Test1); //0.99
console.dir(typeof(Test1)); // number
但是,当小数位只有一位或者两位都为0的情况下,则只会保留整数。
var number = 0.900006;
var Test1 = parseInt(number * 100) / 100;//保留两位小数,
console.dir(Test1); //0.9
console.dir(typeof(Test1)); // number
3.parseInt()和toFixed()、Math.floor()与toFixed()
这里如果需要自带补0的话,则要跟toFixed() 函数进行处理。
var number = 0.900006;
var Test1 = (parseInt(number * 100) / 100).toFixed(2);//保留两位小数,
console.dir(Test1); //0.90
console.dir(typeof(Test1)); // number
Math.floor()也是可以跟==toFixed()==函数一起进行处理的。
var number = 0.900006;
var Test1 = (Math.floor(number * 100) / 100).toFixed(2);//保留两位小数,
console.dir(Test1); //0.90
console.dir(typeof(Test1)); // number
4.字符串匹配
这里要注意的是先将数据转换为字符串,最后在转换为数值类型。
var number = 0.900006;
//这里使用正则表达式来进行处理
var Test1 = Number(number.toString().math(/^\d+(?:\.\d{0,2})?/));
console.dir(Test1); //0.90
console.dir(typeof(Test1)); // number
总结
以上就是今天要讲的内容,本文仅仅简单介绍了JS保留小数位的方法,分别从四舍五入和是否自动补0这两个方面进行入手。