大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
一 Math.round(),Math.ceil(),Math.floor()的区别
Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数
小数点后第一位<5
正数:Math.round(11.46)=11
负数:Math.round(-11.46)=-11
小数点后第一位>5
正数:Math.round(11.68)=12
负数:Math.round(-11.68)=-12
小数点后第一位=5
正数:Math.round(11.5)=12
负数:Math.round(-11.5)=-11
总结:(小数点后第一位)大于五全部加,等于五正数加,小于五全不加
Math.ceil():根据“ceil”的字面意思“天花板”去理解;
Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12
Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11
总结:只要后边有小数都是向上取整
Math.floor():根据“floor”的字面意思“地板”去理解;
Math.floor(11.46)=Math.floor(11.68)=Math.floor(11.5)=11
Math.floor(-11.46)=Math.floor(-11.68)=Math.floor(-11.5)=-12
总结:只要是有小数,都是向下取证;
二 js保留两位小数总结
1四舍五入型的
var num =2.446242342;
//toFixed(要保留的小数点后边的位数)
num = num.toFixed(2); // 输出结果为 2.45 返回的值是一个字符串类型
2 不四舍五入型的
第一种,先把小数变整数:
Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
返回的是一个数字类型
第二种,当作字符串,使用正则匹配:
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))
// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
返回的是一个数字类型
注意:如果是负数,请先转换为正数再计算,最后转回负数
三 Js取float型小数点后两位数的方法
1 处理会四舍五入
var num =2.446242342;
num = num.toFixed(2); // 输出结果为 2.45
//toFixed(要保留的小数点后边的位数)
此处的toFixed()函数取到的值是一个string类型,而不是一个number类型;
处理不会四舍五入
1 先把小数变整数
Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
此处的取到的值是一个number类型;
2当做字符串,使用正则匹配
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))
// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
此处取到的值是一个number类型
注意:如果是负数,请先转为整数再计算,最后在转回负数;
保留两位小数
1功能:将浮点数四舍五入,取小数点后2位
var num =2.446242342;
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x*100)/100;
return f;
}
toDecimal(num)//调用方法
var nums=toDecimal(num) //调用函数方法后,他不会改变原来那个变量所拥有的值,而是从新
替换成一个新值;
console.log(typeof(nums));
此处获取到的值是一个number类型
2制保留2位小数,如:2,会在2后面补上00.即2.00
//强制保留两位小数
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x*100)/100;
var s = f.toString();
var rs = s.indexOf(‘.’);
if (rs < 0) {
rs = s.length;
s += ‘.’;
}
while (s.length <= rs + 2) {
s += ‘0’;
}
return s;
}
此处获取到的是一个string类型的值;
3 可选择要保留几位小数的方法
var num=2.446242342;
function fomatFloat(src,pos){ //src是要保留小数的值,pos是要保留几位小数;
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}
var nums=fomatFloat(num,3)
console.log(nums);
console.log(typeof(nums));
此处获取到的是一个number类型的值;
4 精确到n位,不含n位
var num=2.446242342;
var nums=num.toPrecision(3);
console.log(nums);//2.45
console.log(typeof(nums));
此处获取到的是是一个String类型的值
5 只保留整数部分
var num=2.446242342;
var nums=parseInt(num);
console.log(nums);//2
console.log(typeof(nums));//number
6向上取整,有小数就整数部分加1
var num=2.446242342;
var nums=Math.ceil(num);
console.log(nums);//3
console.log(typeof(nums));//number
7四舍五入.
var num=2.446242342;
var nums=Math.round(num);
console.log(nums);//2
console.log(typeof(nums));//number
var num=2.6788667778;
var nums=Math.round(num);
console.log(nums);//3
console.log(typeof(nums));//number
8向下取整
var num=2.6788667778;
var nums=Math.floor(num)
console.log(nums);//2
console.log(typeof(nums));//number
9对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如:changeTwoDecimal(3.1)
,将返回3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数:
var num=2.1;
function changeTwoDecimal_f(x) {
var f_x = parseFloat(x);
if (isNaN(f_x)) {
alert(‘function:changeTwoDecimal->parameter error’);
return false;
}
var f_x = Math.round(x * 100) / 100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf(‘.’);
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += ‘.’;
}
while (s_x.length <= pos_decimal + 2) {
s_x += ‘0’;
}
return s_x;
}
var nums=changeTwoDecimal_f(num);
console.log(nums);//2.10
console.log(typeof(nums));//string
功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,
这个函数返回的是字符串的格式用法:
changeTwoDecimal_f(3.1415926)返回3.14
changeTwoDecimal_f(3.1)返回3.10
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169367.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...