js 浮点数和整数+数据转化

万物皆对象、对象皆有属性和方法,属性没有括号,方法有括号
 
一、精度丢失,浮点数的计算会有误差,值足够大的时候也会出错 0.1+0.2!=0.3
1、tofixed(n) :保留n位小数点,并且会变成一个字符串,四舍五入保留小数点
2、把浮点数化为整数,化零为整,值*10 *100 *1000
 
 
二、取数字
1、parseInt() 取整数部分,从第一位开始截取到非数字为止
2、parseFloat() 取浮点数部分,只会保留一位小数点
3、取余数 a % 24
 
 
三、随机生成一个7位的秒数,并且秒数换算成星期、天数、小时、分钟、秒
var sum = Math.round(Math.random() * (9999999 - 1000000)) + 1000000;
console.log(sum);
var day = parseInt(sum / (24 * 3600));
var shi = parseInt(sum % (24 * 3600) / 3600);
var min = parseInt(sum % 3600 / 60);
var s = parseInt(sum % 60);
console.log(day);
console.log(shi);
console.log(min);
console.log(s);
 
四、取个位数、十位数、百位数、千位数
var sec = 3453
var qian = parseInt(sec / 1000);
var bai = parseInt(sec % 1000 / 100);
var shi = parseInt(sec % 100 / 10);
var ge = parseInt(sec % 10 / 1);
 
 
 
五、数学对象(Math对象)
1、Number() 取数字:
2、Math.abs(num) 取绝对值
3、Math.min(num1,num2,num3) 取最小值
4、Math.max(num1,num2,num3) 取最大值
5、Math.random() 产生0-1之间的随机数,包含0,不包含1
 
0-100之间的随机数
var num=parseInt(Math.random()*100);
 
10-100之间的随机数 不包含100
var num=parseInt(Math.random()*90)+10;
 
6、Math.round(n) 四舍五入的取整
10-100之间的随机数 包含100
var num=Math.round(Math.random()*90)+10;//取到最大值的概率小一些
 
7、Math.floor(n) 向下取整
 
8、Math.ceil(n) 向上取整
10-100之间的随机数 包含100
var num=Math.ceil(Math.random()*90)+10;//取到最大值的概率大一些
 
六、取随机数的公式
Math.round(Math.random() * ( max-min ) + min )
 
七、取整的方法小结
1、parseInt() 向下取整
2、Math.floor(n) 向下取整
3、Math.ceil(n) 向上取整
4、Math.round(n) 四舍五入的取整
5、num.toFixed(0) 四舍五入的取整
 
 
八、强制转换补充
1、其他转数字
console.log(Number('abcd')) NaN not a number 不是一个数字
console.log(Number(1/0)) Infinity 无穷大
console.log(Number('')) 空字符串转数字0
console.log(Number(true)) 布尔值,true是1,false是0
console.log(Number(null)) var a='' null 转数字0
console.log(Number(undefined)) undefined转数字NaN
 
2、其他转字符串
console.log(String(任意数据类型)) 在原来的数据的基础上加了‘’
 
3、其他转布尔值 (除了0、NaN、null、undefined、‘’ 是false 其他都是true)
console.log(Boolean(数字)) 除了0、NaN是false,其他都是true
console.log(Boolean(‘字符串’)) ‘’为false 空格为true 其他都是true
console.log(Boolean(null)) false
console.log(Boolean(undefined)) false
 
 
九、隐式转化:程序自己完成转化
1、其他转数字
自增自减、减乘除求模、加号在遇到字符串的时候,优先转字符串,没有字符串的时候转数字
console.log(true+flase) 1
2、字符串之间的比较,参照ASC码
var a='abc'
var b='aaa'
var c=a>b c就是true
3、字符串跟数字之间的比较
var a =10;
var b='hello' NaN不能比任何数字大,也不能比任何数字小、自己也不等于自己
var c=a>b flase
 
 
十、补充
null==undefined true
null===undefined false
posted @ 2021-06-17 09:17  睫毛上长雀斑  阅读(587)  评论(0)    收藏  举报